這是本文件的舊版!


Conditionally ignore tests

雖然寫的是java程式,但並非所有功能都能夠跨平台執行;又或者測試僅針對某一種平台或情形等,而會有條件的去決定是否執行測試案例。

Ignore Annotation

最簡單的無條件式的忽略是使用@Ignore,通常用於debug或有原因的不想執行才會用上:

@Ignore
public void test() {
	// ... skip to run
}

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
}