我想按順序執行測試方法。我在testng.xml中使用了保持順序設置爲true的類。按預期順序運行相關和獨立的測試方法
<test name="group-test" preserve-order="true" >
<classes>
<class name="com.dependency.ClassA">
<methods>
<include name="create"/>
<include name="enter"/>
<include name="delete"/>
</methods>
</class>
</classes>
</test>
和我的測試類
public class ClassA {
@Test()
public void Create() throws Exception
{
System.out.println("in method create");
}
@Test(dependsOnMethods= "Create")
public void Enter() throws Exception
{
System.out.println("in method Enter");
}
@Test()
public void delete() throws Exception
{
System.out.println("in method delete");
}
執行測試後,我的輸出是
的方法創建,
的方法刪除,
在輸入方法
但我要先執行「創建」,然後「輸入」,然後「刪除」的方法。這裏刪除是一個獨立的測試方法。
我在google group question上閱讀,其中Cedric Beust提到您可以使用依賴關係或在testng.xml中明確包含測試方法。我不明白爲什麼這是執法?如果我想以我想要的任何順序一起執行獨立和相關的測試方法,該怎麼辦?我觀察到獨立的方法首先被執行,然後是依賴的方法。
理想情況下,依賴關係不應該用於維護順序,而應該在上一個方法失敗時跳過測試。 TestNG所執行的這種操作造成了很多麻煩!
@CedricBeust如果您正在閱讀本文。請提出解決方案。缺乏這個功能實際上阻礙了我們實施基於TestNG的完整測試套件的方式,這套測試套件已經開發出來,但無法執行! –
dependsOnMethods將覆蓋您在XML中指定的任何內容。如果您需要嚴格排序,請對所有方法使用dependsOnMethods。 –
@CedricBeust對於嚴格排序的所有方法,我無法使用dependsOnMethods。我只想在真正需要時使用依賴關係。有沒有可以爲此提供的解決方案?在創建TestNG時,爲什麼沒有想到這個功能有什麼特別的原因?這是一個非常基本和明顯的要求。 –