雖然寫的是java程式,但並非所有功能都能夠跨平台執行;又或者測試僅針對某一種平台或情形等,而會有條件的去決定是否執行測試案例。
最簡單的條件式忽略,可以在@Before宣告的方法中,宣告你要限制的條件。以這例子而言,只有在Windows上執行測試,才會真正的執行:
@Before public void setup() { Assume.assumeTrue(Platform.isWindows()); // ... skip to run }
@BeforeClass public static void classSetup(){ Assume.assumeTrue(Platform.isLinux()); // ... skip to run }
@Test public void testNetShareGetInfo() { Assume.assumeTrue(Platform.isWindows()); // ... skip to run }
我另外試了JUnit-Ext這個API,範例如下:
class RunOnWinows implements Checker { @Override public boolean satisfy() { return Platform.isWindows(); } } @RunIf(RunOnWinows.class) @Test public void test() { System.out.println("run test"); }結果是失敗的,我沒繼續往下追原因,畢竟目前透過Assume足以達到我的需求。