我试图将我的测试区分为单元测试和集成测试。我的想法是使用新的JUnit5批注@Tag("unit")
,该批注对我的JUnit测试非常有效,但我无法使其与Spek一起使用。
我现在的课程是:
data class MyObject(val value: Int)
Run Code Online (Sandbox Code Playgroud)
我的测试:
@Tag("unit")
object MyObjectTest {
@Test
fun checkEquality() {
val o1 = MyObject(1)
assertEquals(o1, o1)
}
}
Run Code Online (Sandbox Code Playgroud)
与我的build.gradle具有:
task utest(type: Test) {
outputs.upToDateWhen { false }
useJUnitPlatform {
includeEngines 'junit-jupiter', 'junit-vintage', 'spek'
includeTags 'unit'
excludeTags 'performance', 'integration', 'functional'
}
testLogging {
events "passed", "skipped", "failed"
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行utest时,这可行。但是,使用Spek进行相同操作时:
@Tag("unit")
object MyObjectSpek : Spek({
given("an Object") {
val o1 = MyObject(1)
it("should be equal to itself") {
assertEquals(o1, o1)
}
}
}) …
Run Code Online (Sandbox Code Playgroud)