2011-03-23 37 views

回答

5

最簡單的辦法是隻改變@Test@Test(singleThreaded=true)。如果你這樣做,你班上的所有測試將在一個線程中按順序運行。

或者

如果你想更明確一些爲了使測試應該運行,你可以使用註釋@dependsOnMethods

public void orange(){} 

@Test(dependsOnMethods = { "orange" }) 
public void apple(){} 

@Test(dependsOnMethods = { "apple" }) 
public void mango(){} 

,如果你想要一些,這也是不錯的,但不所有的類中的方法依次運行。

http://testng.org/doc/documentation-main.html#dependent-methods

+1

依賴關係是要走的路。另外請注意,最近的TestNG版本支持一個名爲「preserve-order」的XML屬性,它將保證您的類和方法的執行順序與testng.xml文件中的順序相同。 – 2011-03-23 22:52:27

+0

是的,TestNG的「維護秩序」工作得很好。我也用「@dependsOnMethods」 – 2012-07-17 11:10:33

0

在你的測試類中,你可以在類級本身嘗試這個註解。

@Test(sequential = true) 
+1

順序已過時,請使用singleThreaded代替 – 0x89 2011-11-11 13:48:53

0

我建議使用dependsOnGroups。因此,您將您的測試方法作爲一個組來提供,並提供對這個組的依賴。所以明天如果你重構你的方法名稱,你的依賴結構不會被打破。有關dependsOnGroups的更多信息,請參閱here

0

除了在類上使用sequential=true之外,還可以爲方法本身設置優先級。

@Test(priority=1) 
public void orange(){} 

@Test(priority=2) 
public void apple(){} 

@Test(priority=3) 
public void mango(){}