1

testNGでテストを書いています。各テストメソッドは、クラスレベルで格納された多数の共通属性を共有しますが、各テストメソッドには独自の独立したドライバーが必要であるため、ドライバーをクラス変数として格納することはできません。これにより、同時に実行しながら、各テストメソッドを異なるドライバーで複数回呼び出すことができます。

基本的に、私がやろうとしていることの私のsudo-codeは、次のようになります。

@BeforeMethod
public void setup(Argument someArg) {
    Driver driver = new Driver(argArg); 
}

@Test
public void test() {
    driver.dostuff();
}

@AfterMethod (alwaysrun = true)
public void teardown() {
    driver.quit();
}

私の考えでは、ドライバーを保存および取得するためのキーとしてクラス名とテストメソッドを使用して、ドライバーを同時マップコレクションに保存する可能性がありますが、これを行うためのより簡単で冗長性の低い方法を見つけたいと思います。

すでにこれに対処している答えがあれば、お詫び申し上げます。私は高低を検索しましたが、探していた解決策が見つからなかったか、特定のアイデアが私の問題にどのように適用されるかを関連付けることができませんでした。私のケースはSeleniumWebdriverに固有のものですが、このようなことをしたいと思うケースが他にもあると思います。

4

1 に答える 1

1

使ってThreadLocal<Driver>みませんか?

于 2012-07-24T18:03:38.753 に答える