我試圖以確定的順序運行測試用例,但沒有運氣。當我看到之後,從另一個測試方法與@AfterClass
運行註解的方法:爲什麼@AfterClass在其他類的測試之後調用?
Configuring TestNG with: [email protected]e9d6
RUN class com.example.testng.ITCaseOne.beforeClass()
RUN class com.example.testng.ITCaseOne.someCase()
RUN class com.example.testng.ITCaseTwo.beforeClass()
RUN class com.example.testng.ITCaseTwo.someCase()
RUN class com.example.testng.ITCaseOne.anotherCase()
RUN class com.example.testng.ITCaseOne.afterClass()
RUN class com.example.testng.ITCaseTwo.anotherCase()
RUN class com.example.testng.ITCaseTwo.afterClass()
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.25 sec
它失敗,因爲從ITCaseTwo
所有@Test
必須被調用後,才ITCaseOne.afterClass()
(因爲我用從一個案例硒和測試應該檢查相應的頁面) 。
我的簡單的類:
public class ITCaseOne {
@BeforeClass
public void beforeClass() {
System.out.printf("RUN %s.beforeClass()\n", getClass());
}
@AfterClass(alwaysRun = true)
public void afterClass() {
System.out.printf("RUN %s.afterClass()\n", getClass());
}
@Test(groups = "std-one")
public void someCase() {
System.out.printf("RUN %s.someCase()\n", getClass());
}
@Test(groups = "logic-one", dependsOnGroups = "std-one")
public void anotherCase() {
System.out.printf("RUN %s.anotherCase()\n", getClass());
}
}
和
public class ITCaseTwo {
@BeforeClass
public void beforeClass() {
System.out.printf("RUN %s.beforeClass()\n", getClass());
}
@AfterClass(alwaysRun = true)
public void afterClass() {
System.out.printf("RUN %s.afterClass()\n", getClass());
}
@Test(groups = "std-two")
public void someCase() {
System.out.printf("RUN %s.someCase()\n", getClass());
}
@Test(groups = "logic-two", dependsOnGroups = "std-two")
public void anotherCase() {
System.out.printf("RUN %s.anotherCase()\n", getClass());
}
}
如果它是重要的我使用maven-failsafe-plugin
2.12和testng
6.4
(順便說一句,我也嘗試使用套件文件與preserve-order="true"
但它不適用於我)。
在此先感謝!
哎呀。我剛剛在我的問題中解決了錯誤,以澄清我期望的內容。我只需要在第一課的所有方法之後執行第二課的所有方法。 – 2012-03-22 14:23:32
答案仍然成立。 – 2012-03-22 14:35:52
是的,它的工作原理,謝謝。但它有一些缺點:所有類都應該用這種方式鏈接,當第一個測試用例中的一個測試失敗時,所有其他類都將被跳過。此解決方案也爲測試執行添加了嚴格的順序,但實際上我並不在乎誰會首先被調用 - 「ITCaseOne」或「ITCaseTwo」。 – 2012-03-23 12:29:57