我在使用 spock 开始测试 java 代码时遇到问题。当我运行测试时出现错误:
0 test classes found in package '<default package>'
Process finished with exit code -2
Empty test suite.
我使用Intellij和Maven,将依赖项放入pom文件中:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>myGroup</groupId>
<artifactId>mySecondArg</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.1-groovy-2.4-rc-3</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.7</version>
</dependency>
</dependencies>
</project>
创建了我的简单类Person
:(在java中)
public class Person {
private String name;
private String surname;
private String age;
public Person(String name, String surname, String age){
this.name = name;
this.surname = surname;
this.age = age;
}
}
和测试(它是 spock 类):
class PersonTest {
def "my Test"(){
when:
Person person = new Person(name: name, surname: surname, age: age)
then:
person.name == name
person.surname == surname
person.age == age
where:
name | surname | age
"AAA" | "BBB" | 22
"HHH" | "CCC" | 30
"BBB" | "SSS" | 40
}
}
我的项目树如下所示:
我尝试遵循一些教程,但可能我错过了一些东西。我的项目有什么问题以及为什么测试不起作用?
最佳答案
您的测试应该扩展规范
class PersonTest extends Specification {
您正在用 Groovy 编写测试,因此最佳实践是将它们保存在 src/test/groovy
关于java - Spock 用于在 Intellij 中测试 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41911901/