我有一個Scala的功能2測試看起來如下:爲什麼在使用maven surefire運行時,surefire會忽略Scala specs2測試的測試類別?
import org.specs2.mutable.Specification
import org.junit.runner.RunWith
import org.junit.experimental.categories.Category
import util.categories.NightlyTestCategory
import org.specs2.runner.JUnitRunner
import org.junit.Test
import org.junit.runners.JUnit4
@RunWith(classOf[JUnitRunner])
class MyTest extends Specification {
"My Test" should {
"succeed" in {
done
}
}
}
注意,上述試驗使用自定義轉輪JUnitRunner(從Specs2)來執行該測試。我使用Maven 3,以保持該項目,並已配置萬無一失,只包括標有NightlyTestCategory組測試:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
...
<groups>util.categories.NightlyTestCategory</groups>
</configuration>
</plugin>
當我執行測試,我希望,因爲它不與類別註釋的Maven不運行上述測試NightlyTestCategory。但是,Maven會執行測試。奇怪的是,如果我把測試到與JUnit4亞軍執行定期JUnit測試,Maven將執行這個測試只有當我添加類別NightlyTestCategory:
@RunWith(classOf[JUnit4])
@Category(Array(classOf[NightlyTestCategory]))
class MyTest extends Specification {
@Test
def test = println("Test")
}
對於我來說,好像使用自定義Specs2跑步者JUnitRunner以某種方式影響了surefire忽略組設置,並簡單地運行它找到的所有測試。我正在尋找一種解決方案,它允許我使用JUnitRunner運行specs2測試,但同時應該尊重該類別。
感謝澄清這一點。 – Valentin