簡體   English   中英

按指定順序運行JUnit4 Test類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM