2017-12-19 22 views
0

私はtestng.xmlの下にいくつかのテストケースを持っています。私のtestng.xmlは以下のようになります。@TestアノテーションがtestNGのすべてのテストで最初に実行されていますか?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="AutomationPractice" parallel="none"> 
    <test name="Logins"> 
    <classes> 
     <class name="newMavenProject.Gmail_Login_Firefox"/> 
     <class name="newMavenProject.Facebook_Login_Chrome"/> 
    </classes> 
    </test> <!-- Logins --> 
</suite> <!-- AutomationPractice --> 

私の両方のテストでは、@BeforeTest、@Testと@AfterTestアノテーションがあります。 testng.xmlをtestNGSuiteとして実行します。ブラウザーが両方のテスト(@BeforeTest)を同時に開いてから、Gmail_Loginテストが@Testアノテーションを実行することがわかります。それから、Facebook_Login_Chromeは@Testアノテーションを実行します。そして、私のGmail_Loginテストは@AfterTestアノテーションを実行し(ブラウザを閉じる)、私のFacebook_Login_Chromeテストは@AfterTestアノテーション(ブラウザを閉じる)を実行します。

Gmail_Loginテストが完全に実行されるようにするには(@BeforeTest、@Test、@AfterTest)、Facebook_Login_Chromeテストが完全に実行されます(@BeforeTest、@Test、@AfterTest)。

ありがとうございます!

+0

この問題をシミュレートするために使用しているコードを教えてください。スレッドIDを印刷するときにも、何が表示されますか? TestNGは、明示的に構成されていない限り、パラレルで何も実行すべきではありません。したがって、印刷スレッドIDロジックを追加して出力を共有することができます。また、使用しているTestNGのバージョンも含めてください。今日の最新リリース版は '6.13.1'です –

+0

beforemethodとaftermethodを使用して、テストメソッドをすぐに実行してください。テストタグに対して、事前テストおよびアフターテストが実行されます。 – Grasshopper

答えて

0

<test>タグを実行すると、すべてのメソッドが実行され、含まれているすべてのクラスの@BeforeTestが注釈されます。

セットアップとティアダウンの方法には、@BeforeClass@AfterClass注釈で注釈を付ける必要があるように見えます。 TestNG documentationによると

@BeforeTest<test>タグ内のクラスに属するすべてのテストメソッド が実行される前に、アノテーション付きメソッドが実行されます。

@AfterTest:注釈付きメソッドは、<test>タグ内のクラスに属するすべてのテスト メソッドが実行された後に実行されます。

@BeforeClass:注釈付きメソッドは、現在のクラスの最初のテスト メソッドが呼び出される前に実行されます。

@AfterClass:注釈付きメソッドは、現在のクラスのすべてのテスト メソッドが実行された後に実行されます。

関連する問題