使用 Maven 运行 spock 单元测试
2022-09-01 12:52:07
在之前的一个项目中,我使用Spock测试框架来单元测试我的Java代码。我发现这真的很有成效,所以我正在尝试将Spock测试添加到我当前的项目中,该项目使用Maven作为其构建工具(以前的项目使用Gradle)。虽然我可以让 Maven 编译我的 Spock 测试(使用),但我无法让 Maven 运行测试。groovy-eclipse-compiler
我做了一个简单的例子来演示我用2个文件的问题:
pom.xml
src/test/java/ASpec.groovy
内容 :pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>my-artifact</artifactId>
<version>0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.0.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>0.7-groovy-2.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.8.0-01</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<version>2.1.8-01</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
内容 :ASpec.groovy
import spock.lang.Specification
class ASpec extends Specification {
def "Test A"(){
// Always fail
expect: false
}
}
当我执行(或)时,我希望我的单个单元测试被运行并失败。在编译时,Maven 不会运行它。有没有人知道如何从Maven运行Spock单元测试(或者如果可能的话?mvn clean test
mvn clean install
(我没有把我的测试放在一个包里,以保持示例的简单性。此外,我还将我的时髦代码放在src / test / java中,以避免将示例配置为从其他目录中获取源文件,再次使示例尽可能简单。