2016-09-06 120 views
-1

目前我正在使用Gradle(groovy),Gebish和jUnit4進行Selenium測試。根據參數跳過一些測試

在我的gradle.build中,我有變量的測試環境(至極服務器本地或生活和旺旺域)。

現在我希望不是所有的測試都在每種情況下運行。例如,我希望TestA和TestB與域abc.com一起運行,並且只有TestA和TestC與域def.com一起運行。

爲此,我創建了一個全局配置類,在其中獲取允許運行的類的信息。

我的想法是在每個方法之前運行@before,並檢查該類是否被允許,但是我不知道如何在@before之後跳過。 有沒有簡單的方法呢?是否有可能使用類似System.exit(0)的方法退出測試類而不是整個測試?

回答

2

您可以使用org.junit.Assume的方法。他們就像org.junit.Assert中的方法,但他們不會像那些測試一樣失敗,但在失敗時跳過它們。如果您想將該控制代碼放入測試類中,則此方法可用。

除此之外,您還可以使用JUnit Categories將測試或測試類標記爲「針對a運行」和/或「針對b運行」,然後決定在您的Gradle文件中運行哪些類別。

這兩種方法之間的區別 - 除了託管決策代碼的地方 - 是第一種解決方案在測試報告中將跳過的測試視爲「忽略」或「跳過」,而第二種解決方案只有屬於指定類別的測試運行,因此顯示在測試報告中。

+0

謝謝,我使用@before並假設True(false)現在跳過測試,它的工作原理很棒:) –