[英]Running JUnit4 Test classes in specified order
我已經編寫了許多測試,不僅分為不同的類,而且根據我們正在測試的應用程序的哪個區域划分為單獨的子包。 所以,我的包結構看起來有點像這樣:
my.package.tests
my.package.tests.four
my.package.tests.one
my.package.tests.three
my.package.tests.two
在my.package.tests
包中,我有一個父類,子類包中的所有測試都是一到四個擴展。 現在,我想選擇運行測試的順序; 未中的類(這似乎是可能與FixMethodOrder注解 ),但類或子包本身的順序(因此,那些在子包one
第一,那么那些在two
,等。)。 一些測試類使用參數化運行器 ,以防萬一有所不同。 測試成功不需要選擇順序,它們是相互獨立的; 然而,對它們進行排序以反映通常使用程序的各個部分的順序是有幫助的,因為它使分析更容易一些。
現在,理想情況下我想要一些配置文件告訴JUnit應該執行哪些測試順序; 不過我猜它不會那么容易。 我在這里有哪些選項,最簡單的選項是什么? 我也更喜歡只需列出子包,而不是包中的各種類,甚至是類中的測試函數。
我正在使用Java 1.6.0_26(我在這里沒有選擇)和JUnit 4.11。
您可以使用測試套件執行此操作。 (你也可以“嵌套”這些)
@SuiteClasses({SuiteOne.class, SuiteTwo.class})
@RunWith(Suite.class)
public class TopLevelSuite {}
@SuiteClasses({Test1.class, Test2.class})
@RunWith(Suite.class)
public class SuiteOne {}
@SuiteClasses({Test4.class, Test3.class})
@RunWith(Suite.class)
public class SuiteTwo {}
... 等等。 使用“toplevelsuite”作為入口點,測試將按照定義@SuiteClasses
數組的順序執行。
對於類中的方法,您可以使用@FixMethodOrder
指定它們執行的順序(正如您在問題中已經提到的那樣)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.