2016-05-30 5 views
0

背景:私はTestNGでテストを実行しています。@Testでアノテーションを付けられたクラスには、数値を生成するIDがあります。その場合はIDと同じ番号が2番目のテストの入力値です。 TestNGテスト間で値を渡すことは可能ですか?TestNGテスト間で値を渡す

+2

テストは、スタンドアロンする必要があるので、これは私には悪い習慣のように思えます。あなたのコードを投稿すると、助けが簡単になります。 – michaelsnowden

+0

テストケースはエンドツーエンドであるため、最初のテストケースで作成したケース番号を閉じて終了します。 –

+0

あなたは自分で処理する必要があります - テスト全体で使用する変数を作成します。 parallelyを実行している場合は、threadlocalを使用して変数を格納してください。 –

答えて

0

ケース全体を処理するテストを1つ作成する必要があります。テストはお互いに依存することはできませんが、それは悪い習慣とみなされます。テストの順番を使用している場合、実行環境は環境によって異なる場合があります。

0

悪い習慣であるかどうかは、単にクラスフィールドを使用することによって達成できます。あなたのケースが予測可能な順序で実行されていることを確認してください(例えば、@Test(priority)またはdependsOn TestNG機能を使用して)。

0

あなたが関連している2つのテストを持っている場合たとえば、あなたは、テストコンテキストを介してテストから別の値を渡すことができます属性:

@Test 
public void test1(ITestContext context) { //Will be injected by testNG 
    /* Do the test here */ 
    context.setAttribute("myOwnAttribute", "someTestResult"); 
} 

@Test(dependsOnMethods = "test1") 
public void test2(ITestContext context) { //Will be injected by testNG 
    String prevResult = (String) context.getAttribute("myOwnAttribute"); 
} 
関連する問題