15

実行モードがparallel="methods".

JUnit は自動的に実行しますが、TestNG はメソッド間で同じインスタンスを再利用します。

この動作を変更するオプションはありますか?

私はセレンテストを実行していて、@BeforeMethodメソッドでwebdriverを作成し、それをクラス変数に保存して、テストメソッドとクローズで使用し@AfterMethodます。

そして、webdriver を共有せずに、1 つのテスト クラスのメソッドを並行して実行できるようにしたいと考えています。

4

3 に答える 3

3

testng にそれを強制する方法はありません。解決策は、webdriver インスタンスをスレッドローカル変数に設定することです。これが役立つのは、変数を取得すると、スレッドごとに 1 つの webdriver オブジェクトが作成されることです。そのスレッドのオブジェクトのみを提供します。

于 2013-03-26T15:11:27.857 に答える
1

チェックアウトファクトリー

javadocから:

Marks a method as a factory that returns objects that will be used by TestNG as Test classes. The method must return Object[].
于 2013-03-26T08:59:41.973 に答える
0

TestNG を使用して、複数の Selenium Webdriver テストを並行して実行しました。メソッドごとに新しい WebDriver を設定するには、 @DataProviderアノテーションと @Test アノテーションの関連属性を使用します。

于 2013-10-09T18:07:15.893 に答える