2017-07-26 19 views
1

パフォーマンステストを行いたいので、テストファイルにTestCaseの代わりにPHPUnit_Framework_TestCaseを使用することを考えました。私はHTTP要求のテストを犠牲にしていますが、少なくともLaravelのコンポーネントの一部(プロバイダなど)を使用したいと考えています。私はCall to a member function connection() on nullを言って、エラーを持っているテスト中にnullのメンバー関数connection()を呼び出す

<?php 

class ChatTest extends PHPUnit_Framework_TestCase 
{ 
     /** @test */ 
    public function chat_can_be_accepted() 
    { 
     $this->chat->setStatus(Chat::CHAT_STATUS_WAIT_MASTER); 
     $this->chat->accept(); 

     $this->assertEquals(Chat::CHAT_STATUS_WAIT_CONFIRM, $this->chat->getStatus()); 
    } 
} 

はここのように見えるものです。この例ではsetStatusが実際にLaravel内部を使用しています(アプリを必要とする関係のような単純なもの)。

私は既にすべてのプロバイダを切り替えようとしましたが、コードはプロバイダを経由していないようです。また、PHPのバージョンや拡張を変更しようとしました。

答えて

3

私は将来のリマインダーのために私自身の質問に答えています。また、私は決してこの回答を他のどこにも見いだせなかったからです。

この時点では、PHPStormを使用していましたが、デフォルトでテストを起動するときにphpunit.xmlファイルを自動ロードしません。

ファイル内のその行は、テスト:bootstrap="bootstrap/app.php"と一緒にLaravel(Lumenでも動作します)を起動します。

これは、テストフレームワークを使用しなくても、Laravel内部を使用するために必要です。 CLIでこれを使用するには

enter image description here

:PHPStormでこれを使用するには

phpunit --configuration phpunit.xml 
関連する問題