這是本文件的舊版!
Conditionally ignore tests
Problem
雖然寫的是java程式,但並非所有功能都能夠跨平台執行;又或者測試僅針對某一種平台或情形等,而會有條件的去決定是否執行測試案例。
How to?
Ignore Annotation
Assume Class
最簡單的條件式忽略,可以在@Before宣告的方法中,宣告你要限制的條件。以這例子而言,只有在Windows上執行測試,才會真正的執行:
@Before public void setup() { Assume.assumeTrue(Platform.isWindows()); // ... skip to run }
以這種情況來說,放在@BeforeClass宣告的方法中,會更為洽當,僅會執行一次而不會每個@Test都執行:
@BeforeClass public static void classSetup(){ Assume.assumeTrue(Platform.isLinux()); // ... skip to run }
如果每個@Test有個別條件,可以將Assume放在@Test宣告的方法中:
@Test public void testNetShareGetInfo() { Assume.assumeTrue(Platform.isWindows()); // ... skip to run }
Reference