我有一个现有的Java项目,希望在其中引入一些Spec测试(在kotlin ofc中)
class CalcSpec: Spek({
given("A calculator") {
val calculator = Calculator()
on("Adding 3 and 5") {
val result = calculator.sum(3, 5)
it("Produces 8") {
org.junit.jupiter.api.Assertions.assertEquals(8, result)
}
}
}
})
我添加了spek依赖项
<dependency>
<groupId>org.jetbrains.spek</groupId>
<artifactId>spek-api</artifactId>
<version>1.1.5</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.spek</groupId>
<artifactId>spek-junit-platform-engine</artifactId>
<version>1.1.5</version>
<type>pom</type>
<scope>test</scope>
</dependency>
并按照此处here
的说明配置了kotlin-maven-plugin和maven-compiler-plugin
(从问题中省略了maven-compiler-plugin配置)
<build>
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.0.6</version>
<executions>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals> <goal>test-compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<useManifestOnlyJar>false</useManifestOnlyJar>
<includes>
<include>**/*Spec.*</include>
</includes>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
我尝试了不同版本的kotlin,spek和surefire插件,但到目前为止还算不上运气。
每次尝试运行测试时,都不会执行Spek测试,即使它们在target/test-classes
中也是如此。 (对于CalcSpec,生成了5个.class文件)
答案 0 :(得分:0)
我知道您已经说过您尝试过不同的版本,但是请尝试使用surefire 2.19和Junit平台1.1.0-M2。
不久前我也遇到过同样的问题,那些问题对我有用。