6

Web テストには JUnit - Selenium を使用しています。Maven を使用してそれらを開始し、確実なレポートを作成します。

テスト スイートは非常に大きく、実行に時間がかかり、ブラウザーが起動しないために単一のテストが失敗することがあります。Maven を使用して SINGLE テストを実行できるようにしたいので、失敗したテストを再テストしてレポートを更新します。

1 つのテスト クラスですべてのテストを実行するために使用できますmvn test -Dtest=TESTCLASSNAMEが、最も複雑なテスト クラスですべてのテストを実行するには約 10 分かかり、他のテストが失敗する可能性が非常に高いため、これでは十分ではありません (ブラウザーが始まらない)、これは私のレポートを台無しにします。

Eclipse から 1 つのテストを実行できることはわかっていますが、それは私が探しているものではありません。

これに関するヘルプは非常に高く評価されます

4

3 に答える 3

4
  1. 共通のセットアップを持つ親クラスと各テストケースの子クラスを持つことができます。これにより、 mvn test -Dtest=TESTCLASSNAME を使用して単一のテストを実行できます。

  2. junit4 を使用している場合は、無視したいメソッドに @Ignore で注釈を付けることができます。

  3. テストケースごとに onSetup() と onTeardown() を実行する必要がない場合は、テスト メソッドを非公開にして、他のメソッドを呼び出すテストケースを 1 つだけ持つことができます。このようにして、必要に応じて簡単にコメントアウトできます。

于 2010-03-19T00:20:53.237 に答える
2

c_makerの回答は、要点を説明しています。大規模なテストケースを複数のテストケースに分割することを検討する必要があります。スイート全体の前にセットアップやテストの依存関係などを簡単に管理できるように、SeleniumテストにはTestNGまたはJUnit4をお勧めします。TestNGでは、を使用しgroupてテストを分類して選択的に実行することもできるため、特定のクラスのテストを実行するときに無視するようにテストを設定する必要はありません。

于 2010-03-19T02:33:07.907 に答える
0

Maven Surefire Pluginを使用している場合は、次を実行できます。

mvn -Dtest=TestCircle#mytest test

ここで、TestCircle はテスト クラス、mytest はテスト メソッド名です。

直接関係はありませんが、Cucumber を使用してシナリオを実行している場合は、次のようにして単一の機能ファイルで単一のシナリオを実行できます。

mvn -P selenium,chrome -Dcucumber.options="classpath:com/my/package/myfeature.feature:47" clean verify

ここで、47 行目は実行するシナリオの開始点で、"chrome" はテスト ブラウザー プロファイルです。

于 2016-03-21T02:03:39.007 に答える