我一直在努力让 kotlintest 测试从 maven 正常运行。我远非 Maven 专家,所以我希望有人能告诉我哪里出错了。
我从这里的 kotlin repo 中的 maven 示例开始,效果很好。添加更多测试时会出现问题。当我添加更多测试(在嵌套包中)时,实际上只有一个测试“运行”,其他测试似乎只是运行了一个虚拟测试方法。例如,给定以下层次结构:
使用这个pom.xml,运行mvn test
给出:
Running BarTest
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec <<< FAILURE! - in BarTest
should fail Time elapsed: 0.004 sec <<< FAILURE!
java.lang.AssertionError: expected: true but was: false
Running test.BarTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 sec - in test.BarTest
Running a.AThingTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in a.AThingTest
Running newtest.FooTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec - in newtest.FooTest
Results :
Failed tests:
BarTest expected: true but was: false
Tests run: 5, Failures: 1, Errors: 0, Skipped: 0
第一个:Running BarTest
实际上是正确的测试(并且故意失败)。所有其他的(Running test.BarTest
, Running a.AThingTest
, Running newtest.FooTest
)实际上并没有运行我的测试(我在那里也有故意的失败),并且似乎只是一些虚拟测试(也许来自 dummy@Test
中的IntelliTestMarker
?)。我在下面包含了其中一个测试文件的样本。
我需要做什么来运行我所有的实际测试?而且,最好不要在输出中显示“虚拟”测试?
BarTest.kt:
package test
import io.kotlintest.shouldBe
import io.kotlintest.specs.ShouldSpec
class BarTest : ShouldSpec() {
init {
"Bar" {
should("succeed") {
true shouldBe true
}
should("fail") {
false shouldBe true
}
}
}
}