我發現this link這說明你可以用Assume.assumeTrue做一些棘手的事情,如果條件爲false,它會將測試標記爲忽略,通常這是一個在條件中使用的系統屬性,所以你可以通過它作爲命令行中的一個參數。 IntelliJ可以讓你自定義命令行參數,所以它應該可以工作,但我沒有嘗試過。
從鏈路的示例是:
@Test
public void shouldTryEveryPossiblePhoneticAttributeSet() throws IOException {
Assume.assumeTrue(TestEnvironment.hasBigParseSets());
...
}
public class TestEnvironment {
private static final String HAS_BIG_PARSESETS = "hasBigParseSets";
public static boolean hasBigParseSets(){
return "true".equalsIgnoreCase(System.getProperty(HAS_BIG_PARSESETS));
}
}
而 「MVN測試-P bigParseSets」 與 「測試MVN」。
編輯:我剛剛在StackOverflow上發現了this neat thread,它告訴我們如何運行一個單一的junit測試。我假設我不需要引用它,因爲它是在StackOverflow中發佈的。這解釋瞭如何從命令行執行該操作,但是您應該可以執行與類和方法名稱的硬編碼值非常類似的操作,然後右鍵單擊SingleJUnitTestRunner類並讓IntelliJ運行它。
在我看來,濫用@Ignored註解並不是一個好主意。也許把測試放在一個單獨的套件中,只有在你需要的時候才運行它會更好。最終(在你的CI平臺上),你會想要測試執行,因爲那是什麼測試。 – kmera
@ k-mera啊,這是一個有趣的想法。這將需要更多的努力,因爲我將不得不確保我的構建腳本被配置爲跳過它,但我可能會沿着這條路線走下去。 –
是的我明白這個問題。一旦你提交你的代碼,它應該在你所有的測試中進行測試。但如果在本地需要很長時間,那麼這可能會減慢發展。 – kmera