問題タブ [serenity-bdd]
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.
report - セレニティ レポートから無視/スキップされたシナリオを削除する
ストーリー ファイルに複数のシナリオがあり、実行したくないシナリオを除外するメタ タグを使用してシナリオを実行しています。しかし、Serenity レポートでは、それらが無視されたと表示され、無視されたシナリオが実行されたシナリオよりもはるかに多いため、見た目が悪くなります。これらの無視されたシナリオをセレニティ生成レポートから削除する方法はありますか?
logging - serenity-bdd のログ設定を変更するにはどうすればよいですか
私のプロジェクトでは、IntelliJ IDEA as IDE のテスト自動化にSerenity BDDを使用しています。テストを実行するたびに表示されるログの形式とデバッグ レベルを変更したいと考えています。
たとえば、[メイン] スレッドからのみログを表示したい:
ログバックの方法は知っていますが、セレニティのログ設定を変更する方法と場所に関する情報が見つかりません。
java - Serenity に PhantomJS webDriver を設定する
統合テストに Selenium-serenity を使用しています。デフォルトでは、セレンは WebDriver 用に FirefoxDriver を統合しますが、今私がやろうとしているのは PhantomJS を使用することです。初期化後にドライバを適切に設定する方法が今のところ見つかりませんでした。
これまでのところ、pageObject の getDriver() メソッドをオーバーライドして、phantomJs webDriver を返しました。
しかし、問題は、WebDriver に対するすべてのアクションが他のページに反映されないことです。これは、もちろん、単一の webDriver のみを返し、super.getDriver() を返していないためです。
私の質問は、新しいインスタンスである複数のページオブジェクト間で状態を共有するように、セレニティの webdriver を適切に設定するにはどうすればよいかということです。
Firefox では完璧に動作するようです。
selenium - とにかく、セレンテストの不安定さを取り除くことはできますか?
Cucumber-JVM と Serenity (レポート ライブラリ) を使用しています。ステップの実装では、ブラウザーの自動化にセレンを使用します。
私は次のような方法を使用します
しかし、それでも私のテストは不安定になることがあります。明示的な待機を使用したくありません。
テストの信頼性を高める方法はありますか?
java - Spring JUnit テスト ルールが実行されないのはなぜですか?
リンクされたコードが JUnit TestRules を実行しない理由の明確な解決策を見つけるのに苦労しています。
TestRules が実行される成功ケースと、 TestRules が失敗する状況を示す失敗ケースを作成しました。
TestRules が取得されない理由を誰かが理解できますか? Spring の TestRule が取り上げられていないだけではありません。ソース コードの MyTestRule.java で示されているように、すべて TestRules のようです。
成功した場合に実行mvn clean install
すると、すべてのテストが成功することがわかります。ただしmvn clean install
、失敗した場合に実行すると、次の失敗が発生します。
これは、Spring のSpringMethodRuleがピックアップされていない結果であり、テスト クラスで確認できますnet.serenitybdd.demos.acceptance.CalculateResults
。
誰にもアイデアはありますか?
java - JBehave + Serenity メタフィルターは、例のテーブル行で機能しますか? それを回避する方法は?
サンプル テーブルとメタ フィルターを使用したテストを開始したくありません。jbehave-core 4.0.4 と serenity 1.1.21 を使用しています
次のシナリオがあります(ここでは簡略化されていますが、同様の問題もあります)
そして、次のコマンドを使用してテストを実行しています
この「@run」タグをローカル コンピューターでのテスト実行に使用しています。しかし、このコマンドは上記のシナリオを実行しません。出力は「成功」ですが、出力には次のものがあります。
奇妙な点は、各行に「@run」値を持つ「Meta:」列を追加すると、テストがうまく実行されることです。したがって、テーブルに "Meta:" 列がない場合でも、examples テーブルで metafilter が機能することをお勧めしますが、これは私の観点からは間違っています。
今のところ、この「Meta:」列を追加する以外に何も表示されないため、誰かが解決策を提案してください。しかし、持っているすべてのパラメーターを複製する必要があるため、悪いです。
serenity-bdd - IE と chrome で Serenity BDD テスト ケースを実行する方法
Serenity BDD テスト ケースを IE と chrome ブラウザで実行する方法を教えてください。スタック オーバー フローのドキュメントやその他の投稿に記載されている方法を試してみましたが、動作しませんでした。Serenity BDD バージョンは 1.1.1 を使用しています。どなたからでも助けていただければ幸いです。
java - IntegrationTest サーバーとテストの間で Spring コンテキストを共有する
メソッド呼び出しを介してオブジェクトを構成し、HTTP 要求を使用してオブジェクトに対してテストを実行できるように、環境をセットアップしようとしています (半疑似コード):
(または JBehave で)
そして、Spring Boot を使用して Web サービスを実装したいと考えています。
しかし、私の試みはきれいに見えますが、うまくいきません。なぜなら、私のテスト オブジェクトによって見られる Spring コンテキストは、Web サービスによって使用される Spring コンテキストと同じではないからです。
私の環境は Serenity+JBehave ですが、原則はそのままの jUnit と変わらないことを願っています。
私は持っている:
...そしてアプリケーションコード:
...そして、共有したいオブジェクトのクラス:
...私のコントローラーで:
...そして私のSerenityステップクラスでは:
テストを実行すると、サーバーが起動し、setter が実行され、HTTP 要求が行われます。でも
- 「Init」が
Store
コンストラクターによって 2 回ログに記録されていることがわかります。1 つはテストに関連付けられた Spring コンテキストによって作成され、もう 1 つは Tomcat コンテナーに属する Spring コンテキストによって作成されます。 Set
私はそれを見ることができReturn
、 のさまざまなインスタンスによってログに記録されますStore
。get
したがって、 I は値 Iではありませんset
。
サーバーとテストで同じ Spring コンテキストを表示するにはどうすればよいですか?