現在、いくつかの JS アプリケーションの e2e テストを作成しています。私は JS 開発者ではないので、このテーマについてしばらく調査していたところ、次の設定になりました。
- テストフレームワークとしての Jasmine2
- 「ビルドツール」としてのうなり声
- テストランナーとしての分度器
- CI サーバーとしての jenkins (すでに多くの Java プロジェクトで使用されています)
テスト中のアプリケーションはAngularで書かれていませんが、Angularがなくても分度器をうまく動かす方法についての素晴らしいガイドに従って、分度器を使うことにしました。
いくつかの簡単なテストを作成し、ローカルで実行するのは魅力的でした。いくつかの要素が den DOM に表示されるのを暗黙的に待機するために、conf.js で次のコードを使用しました。
onPrepare: function() {
browser.driver.manage().timeouts().implicitlyWait(5000);
}
すべてのテストが期待どおりに実行されたので、次のステップ、つまり CI サーバーへのインストールに進むことにしました。
私がテストしたいアプリケーションの開発チームは、すでに grunt を使用してアプリケーションを構築していたので、それに自分自身をフックすることにしました。私の新しい単調なタスクの目標は次のとおりです。
- アプリケーションを組み立てる
- アプリケーションを実行しているローカル Web サーバーを開始する
- 分度器テストを実行する
- テストレポートを書く
最後に、上記のすべての手順を完了しましたが、解決できない問題に対処しており、グーグルで検索する助けが見つかりませんでした. grunt から分度器テストを実行するために、grunt-protractor-runner をインストールしました。
テストは実行されていますが、暗黙の待機が機能していないため、一部のテストが失敗します。いくつかの明示的な待機 (browser.sleep(...)) を追加すると、すべてが再び問題ありませんが、それは私が望むものではありません。
grunt-protractor-runner を使用しているときに暗黙のうちに動作を待機する可能性はありますか?
更新:問題は、うなり声-分度器-ランナーとは何の関係もありません。別の Web サーバーを使用している場合、作業中に再起動します。より正確にするために:プラグイン「grunt-contrib-connect」を使用すると、テストはプラグイン「grunt-php」を使用して機能しますが、テストは失敗します。だから私は今、うなり声用の別のphpサーバーを探しています。この質問を更新します。
更新 2 : いくつかの代替案を探しているときに、私は検討し、最終的にアプリの PHP 部分をモックすることにしました。