2017-07-02 4 views
2

私はLaravelの作曲家パッケージを開発し、その中から単体テストを実行しようとしています。最後の数日を様々な時代遅れの矛盾したガイドとブログポストを読んで過ごした後、私はこれについてどうやって行くのかについて完全に混乱しています。Laravel 5.4; Laravelパッケージからユニットテストを実行するには?

  • 私は、メインのLaravelのインストールからテストを実行しないでください。

    は、ここで私はこれまで知っているのです。テストはすべてパッケージ内に含まれている必要があります。これには一定の論理があると私は認めます。

  • Orchestra Testbenchと呼ばれるものがあります。あなたがLaravelパッケージを開発しているなら、明らかにこれを使うべきです。
  • Laravel Duskと呼ばれるものもあります。これはLaravel 5.4に含まれています。

私はthe examples givenからいくつかの基本的なテストでの作業オーケストラのテストベンチを得ることができますが、私は本当に何が起こっているのか理解していないと、ドキュメントはほとんど何も説明しません。アプリケーションのルートをテストするときは、何もできません。

オーケストラとDuskが一緒に演奏できるかどうか、またはそれらの間で選択する必要があるかどうかはわかりません。もしそうなら、どちらを使うべきですか? Laravel Duskなら、私のパッケージディレクトリからどのように実行すればいいですか?ここで

+0

パッケージの内容を教えてください。それがコンポーザープラグインの場合は、UI層を介してアプリケーションの機能テストを行うことを目的としているため、Duskが必要になるとは思えません。それはあなたが探しているもののようには聞こえません。私はTestbenchを知らないのですが、それはあなたが望むもののように見えますが、正直なところphpunitとlaravelが提供するテスト特性のいくつかから始めようとしています。 – dbrumann

+0

これはAngular JSも使用するコンテンツ管理システムです。私は、すべてのUI用にAngularのテストスイートを使用しています。ルートテストを書くための夕暮れコードは素敵でわかりやすく、APIルートをテストするために使いたいと思っています。データベースクエリなどをテストする必要があるため、Laravelのインスタンスを実際に処理する必要があります。 – Inigo

+0

Laravel for Duskを使いたいですか?そして、あなたは完全に異なるアプリケーションをテストしていますか?これは、夕暮れの訪問URLを変更することで行うことができます。 – hasandz

答えて

0

は、パッケージを開発する際に、私は何をすべきかです:

1)src/testsという名前のフォルダを作成します。ユニットテストのための

  • 単位フォルダ:私は "正常な" 構造に従ってください。このフォルダの中

    2)。

  • フィーチャーフォルダー。
  • ブラウザ Laravel Duskでテストを実行するためのフォルダ(エンドツーエンドテスト用)。

注:Duskを使用すると、実際のユーザーがリンクをクリックしてフォームを入力するなど、アプリケーションをテストすることができます。アプリケーションのユーザーインターフェイス(JavaScriptを使用している場合でも)をテストするのは本当にクールです。あなたのパッケージにインターフェイスが含まれていない場合、あなたは夕暮れを必要としないかもしれません。

3)すべてのテストではLaravelの基本テストスイートを使用しているため、Duskを含む完全なLaravelインストールが必要です(ブラウザテストを使用している場合はDuskのみ必要)。私は\Tests\TestCaseを拡張ユニットと機能テストのためにそう

  • ブラウザテストの延長は\Tests\DuskTestCaseです。cd /path/to/packages/pascall/icms

    php artisan dusk /path/to/packages/pascall/icms 
    

    (またはあなたことができ、その後、phpunitを実行し

    phpunit /path/to/packages/pascall/icms 
    

    や、夕暮れのために:

4)は、今すぐあなたの試験にパスを使用してテストを実行します。

私のチームがこのオプションをより簡単で簡単に見つけたので、私はオーケストラを使用したことがありません。それであなたを助けることはできません。

欠点:

  • 夕暮れのテストの失敗は、(私たちのために、これは私たちがこれをinvestingating時間を費やしていないで結構です)デフォルトLaravel夕暮れのスクリーンショットフォルダに表示されます。
関連する問題