2016-05-05 9 views
5

私は基本的なLaravelパッケージを書いていますが、今度は別の問題を遭遇したようです。Laravelパッケージのテスト

開発中のパッケージは、現在プロジェクトのルートにあるpackagesフォルダにあります。私は(サンプルテストと一緒にtestsという名前のフォルダが含まれている)パッケージフォルダ内phpunit testsを実行してみたときに、私が得る、私はしかし

"require-dev": { 
    "phpunit/phpunit": "~4.0", 
    "laravel/laravel": "dev-develop" 
} 

を必要とする依存関係が含まれるように、パッケージのcomposer.jsonファイルを変更しました次のエラー:

PHPの致命的なエラー:クラス 'を照らし\財団\テスト\テストケース' 行8

に/workspace/laravel/packages/sample/http-request/tests/HttpRequestTest.phpでは見られませんテストファイルは自動生成されたスタブです:

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 
use Illuminate\Foundation\Testing\DatabaseMigrations; 
use Illuminate\Foundation\Testing\DatabaseTransactions; 

class HttpRequestTest extends Illuminate\Foundation\Testing\TestCase 
{ 
    /** 
    * A basic test example. 
    * 
    * @return void 
    */ 
    public function testExample() 
    { 
     $this->assertTrue(true); 
    } 
} 

これはなぜ機能しないのでしょうか?アプリのテストは問題なく実行されますが、アプリ自体にはボックス内のもの以外の依存関係はありません。それはPHPUnit_Framework_TestCaseをを拡張することで、独立して動作させるためにマネージド

SOLUTION:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

しかし、それは好きで実行されている:

vendor/bin/phpunit packages/yourname/package-name/ 

も同様に動作しますが、私はそれを選びました答えとして。

+0

ここで解決策を追加していただきありがとうございます。将来的には、その質問の下に回答として追加してください。ここではQ&Aを明確に区別したいと思います。乾杯! – halfer

答えて

5

これは私の作品:

class HttpRequestTest extends TestCase 

としてテストを実行している:

vendor/bin/phpunit packages/yourname/package-name/ 
+0

いいえ、まだ何も見つかりませんでした:(再び、それはパッケージ/ ...フォルダにあり、それはdevの依存関係を持つ独自のベンダーフォルダを持っています。アプリのルートにはありません。 – overburn

+1

私はポストを更新しました、このようなパッケージテストを実行しています –

+1

これはうまくいきますが、アプリケーションの依存関係を使用していますが、TravisCIとは実行できません。 PHPUnitのバンドルされたTestCaseを使用します。 – overburn

1

(答えとしてOPに代わって投稿)

は、PHPUnit_Framework_TestCaseをを拡張することで、独立して動作させるために管理:

class HttpRequestTest extends PHPUnit_Framework_TestCase 

しかし、それは好きで実行されている:

vendor/bin/phpunit packages/yourname/package-name/ 

も同様に動作しますが、私は答えとして、それを選びました。

関連する問題