問題タブ [e2e-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
internet-explorer - 分度器テストが Internet Explorer で動作するように conf.js を修正するにはどうすればよいですか?
基本的な問題は、分度器を Internet Explorer で動作させることができないことです (Chrome では動作します)。それで、私はこの記事を読みました: Internet Explorer 11 で分度器を実行できません。しかし、私の問題を解決するには不十分なようです。
エラーは次のとおりです。
conf.js は次のとおりです。
javascript - 分度器構成ファイルのパラメーターにアクセスできますか?
以下を実行して分度器テストを開始します。
1 つのパラメーター (この場合は baseUrl) に依存する「起動前」関数を実行したいと思います。それは可能ですか?
これを実行すると、config が定義されていないため、ReferenceError が発生します。どうすればいいですか?それは可能ですか?
javascript - Angular js を使用したファイルのアップロード - 分度器 e2e テスト
自動テストとしてファイルをアップロードしたいのですが、次のコードを使用してファイルを正しく選択し、アップロード ボタンをクリックしますが、アップロード ボタンをクリックしても何も起こりません。ページで JavaScript がトリガーされていないと思います。
これには別の方法がありますか?
編集:私はこれを行うことができました。私を助けてくれた人に感謝します。ここに私のコードがあります:
php - AngularJS テストすべきもの
私と私のチームは Web アプリケーションを作成しており、これを行っています。
- それらの 1 つは API を担当します。
- APIはUIにサービスを提供し、データを提供し、UIが必要とするフィールド、ソートされたもの、およびすべてを提供する可能性があります。基本的にすべてのデータをフィルタリングするため、UIは必要ありません。
- もう 1 つは UI を担当します。
- UI は API を使用してデータを表示します
- 私はテストを行っていますが、コードの後にテストを行っています。API (phpunit - 単体テストと統合テスト) と UI (jasmine - 単体テストと分度器 - e2e テスト) の両方をテストします。
では、実際に何をテストすればよいのでしょうか?
angularJS のコントローラー関数のほとんどはデータを取得して $scope に割り当てますが、これらの関数は単体テストに値しますか?
コントローラーメソッドの例:
他のメソッドは、API からのデータに依存するいくつかの if と基本的に同じです。
サービス方法:
したがって、テストは次のようになります。
- $httpBackend でデータをモックする
- スコープのチェックには正しいモック化されたデータがありますが、これは次のような結果になります:
expect($scope.something).toEqual(MockedSomething);
そして http モックはまさにこれです:$httpBackend.expectGET('/something').respond(MockedSomething);
UI の E2E テストが非常に重要であることは知っていますが、この場合、この種のメソッドに対して単体テストを作成する価値はありますか? それとも、微積分法やそのような方法のような本当に重要な方法をテストする必要がありますか?
一方、API では、ほとんどの機能が統合テストに関係がないように見え、単体テストがはるかに重要に見えます。
私の本当の質問は、私が正しく考えているかどうか、そしてこの場合に何をテストするかについての方向性です。
編集1:
別の質問: 私の場合 (テスト駆動開発ではなく、コードの後にテストします)、コントローラーが完成した後にのみテストする必要があります (本来の目的を実行しますが、少しリファクタリングすることができます)。
selenium - 分度器シリアルスペック実行
テストをリファクタリングした後、奇妙な問題に直面しました。実行時間を大幅に短縮するために、あらゆる場所で beforeEach/afterEach ブロックを非推奨にしましたが、今では単純な仕様でさえ次々と実行するのに問題があります。簡単な構成と仕様を作成しました。
構成:
仕様 1:
仕様 2:
使用して別々に実行すると
それは問題ありませんが、上記の構成がある場合、次のような例外があります。
[ランチャー] WebDriver F のインスタンスを 1 つ実行しています。
失敗:
1) Google Spec 検索入出力が提示されていることを確認する メッセージ: false が true であると予想されます。Stacktrace: エラー: [object Object] で期待に失敗しました。(/Users/sergeyteplyakov/WebstormProjects/e2eMPP20/googleSpec.js:13:54)
6.339 秒で終了 2 つのテスト、2 つのアサーション、1 つの失敗
[ランチャー] まだ実行中の WebDriver の 0 インスタンス [ランチャー] chrome
1 件のテストに失敗しました [ランチャー] 全体: 1 件の仕様に失敗しました [ランチャー] プロセスはエラー コード 1 で終了しました
プロセスは終了コード 1 で終了しました
私の実際のテストでは、私の仕様が私が提供したものと似ている場合、同じ問題があります。何らかの理由で実際に何が起こっているかを見ると、最初の仕様が終了する前に、2番目の仕様の .get(url) メソッドの実行が開始されました。コアで重要な何かが欠けていると思います。誰か教えてください)
angularjs - エンティティを使用した E2E テスト
エンティティの使用法を組み込むために E2E テストを最適化しようとしています。
私たちのテストは基本的に、ウェブページのフォームにデータを入力しています。私たちのテストでは、PageObject が要素を変数に格納する PageObject メソッドを使用しています。また、PO ファイルに格納されている要素との相互作用を含む変数もあります。
私たちのspecファイルは、POファイルを呼び出し、次のように各要素にデータを入力するものです(これは私たちが行っていることの単なる例です):
PO ファイル:
仕様ファイル:
私たちの仕様ファイルには、このコードが約 100 行あり、私が知る限り、あまり効率的ではありません。このスタイルを削除して、代わりにエンティティを使用したいのですが、これをどのように行うか正確にはわかりません。したがって、なぜここに来るのですか。
私の友人は、私がこれにどう取り組むべきかについてヒントをくれました。
仕様ファイル:
これで、nameEntity を pageObejct ファイルに格納するように切り替えることができることがわかりましたが、PopulateUIWIthNameEntity をどのように作成する必要があるか正確にはわかりません。
私は次のことを試しましたが、nameEntityから要素自体に値を入力するようには見えません。
pageObject ファイル:
rest - 分度器 - レストエンドポイントのテスト
分度器 E2E テストから残りのエンドポイントを呼び出そうとしています。以下のサイトを参照しましたが、この投稿は古い API に基づいているようです。
例:protractor.promise.defer();
最新の API では有効ではなくなったようです。
http://squirrel.pl/blog/2014/01/15/direct-server-http-calls-in-protractor/
最新の分度器 API (>= 1.3) に基づいてレスト エンドポイントを呼び出すサンプル コードを教えてください。
次のような汎用関数を記述しようとしています。
angularjs - 分度器ジャスミンの適応は、protractor.promise.defer().promise を適切に待つことができますか?
まず第一に、E2E テストなどの実装が困難な問題のためにこのようなライブラリを考え出した Protractor チームとコミュニティに敬意を表します。
ElementFinderをさらに検査するための追加のユーティリティメソッドを追加したかったので、ElementFinderの周りにラッパーJSクラスがあります。そのようなクラス オブジェクトのインスタンスを返すときは、次のように返します。
後で、次を使用して Jasmine 2.1 の値を期待します。
分度器の女王@juliemrによる公式文書によると、は約束が解決されるまで待つことになっています。止まることなく、そよ風が通り過ぎていくようです。コードが生成した promise のインスタンスを見ると、タイプが. 分度器のコードでは、次を使用していることに気付きました。私はまた、呼び出しを成功せずにラップしようとしましたが、テストが読みにくくなるため、一連の連鎖呼び出しの使用を避けたいと考えています。expect
goog.scope.promise.Promise
webdriver.promise.isPromise(res)
flow.execute
.then
テストフローに進む前に、上記の約束を解決するのを適切に待ちますか?
そうでない場合、Protractor のフレーバーによって適切に検査される promise オブジェクトを作成する適切な方法は何expect
ですか?
新しくてピカピカの分度器 2.0 リリースを使用して実行しています。