私はいくつかのセレンコードを実行するtestNGスイートを持っています。私は持っているwebappのページ間のナビゲーションをテストしています。 4種類のユーザーレベルがあり、ユーザーの種類に基づいて制限付きページにアクセスできます。私はまた、ChromeとIEの両方でこれをテストする必要があります。@BeforeTestメソッドが、以前のテストの最後の要素として報告されることがあるのはなぜですか?
私はtestng.xmlセットアップのためにMkyong.com tutorialに従っています。
すべてのユーザーと両方のブラウザのすべてのナビゲーションテストを1つのtestng.xmlで収集することを選択しました。これは合計8つのテストクラスを提供します.4と4はテストが実行される前に同じ構成クラスが実行されます。
testng.xml:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Releaseboard Local tests" parallel="none">
<test name="user1 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User1NavigationTests" />
</classes>
</test>
<test name="user2 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User2NavigationTests" />
</classes>
</test>
<test name="user3 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User3NavigationTests" />
</classes>
</test>
<test name="user4 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User4NavigationTests" />
</classes>
</test>
<test name="user1 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User1NavigationTests" />
</classes>
</test>
<test name="user2 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User2NavigationTests" />
</classes>
</test>
<test name="user3 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User3NavigationTests" />
</classes>
</test>
<test name="user4 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User4NavigationTests" />
</classes>
</test>
</suite>
今、私はこれらのテストを実行したとき、私はすべての8つのテストクラスのために、この出力を期待:
彼らは赤であればそれは問題ではありません。またはグリーンですが、XMLからのすべてのテストタグが2つのレベルを開始し、常に同じレベルになることを期待しています。示された3つ以上のレベルもありますが、この時点では問題にはなりません。
ただし、出力が次のレベル2になることがあります。これは、前のレベル1に表示されることがあります。@BeforeTest注釈付きメソッドに失敗します。前のテストの中で失敗した後に実際にレベル1でテストを実行するので、それ自体はそれほど悪くないでしょう。ただし、テストが前のテストの中に表示されている場合は、レベル1の@BeforeTestでも常に失敗し、すべてのレベル3のテストメソッドは自動的にスキップされます。下の画像を参照してください。最後に、時間とラインのすべての
はスクリーンショットから、実際のラインです。残りは匿名性のために編集されています。
私の@BeforeTestメソッドと@AfterTestメソッド、setupとtearDownは何らかの理由でテストとしてリストされていることに注意してください。どちらも実際のテスト方法がなく、間違ったテストの内側に、そして実際には、実際のテスト方法で突然、次の内部にあります。これらのエラーは毎回完全にランダムに表示されます。常に次のテストを含む特別なテストはありません。時にはそれらの3つ、時には1つだけがあります。一貫して唯一のことは、それが決して連続して2つではないということです。私は本当にここで何が起こっているのか分かりません。私はより説明したり、より多くの研究をしたいと思っていますが、私はこの問題を検索可能な用語にまで煮詰めています。私はそれが私にそれに恩恵を与えることができるまで、答えられないかもしれないという気持ちがあります。
誰もが見たいと思う他のコード例を投稿しますが、今はどこから始めたらいいかわかりません。
これは実際の問題ではなく、表現上の問題である可能性があると私は正確に考えていました。 –