我在开始使用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
}
}
我的项目树如下所示:
我试着跟随一些教程,但可能我错过了一些东西。我的项目有什么问题,为什么测试不起作用?
两件事-
>
<!-- Mandatory plugins for using Spock -->
<plugin>
<!-- The gmavenplus plugin is used to compile Groovy code. To learn more about this plugin, visit https://github.com/groovy/GMavenPlus/wiki -->
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
所有测试都应该扩展spock。lang.Specification也由@Bhushan建议
import spock.lang.Specification
class PersonTest extends Specification {
有用的链接-Spock Official Eaxmple
我正在尝试使用intellij idea运行单个spock单元测试。 考虑: 在上面的测试中,当我转到测试主体和右上下文菜单时,我得到了两种类型的测试。一个是grails测试,另一个是junit测试。 关于这个问题,公认的答案建议使用jUnit运行程序。但是使用它,代码根本无法编译(可能是因为某些插件和其他类不可用)。 (我不确定,因为这是期望的行为,因为我只是运行一个测试,而不是所有的测试。所以
我正在尝试用Maven/Intellij运行spock测试。但是maven和intellij都没有接受测试类。它肯定会拾取类,但不会在类中执行任何测试。 2)Surefire插件配置正确,因为它会拾取文件进行测试 3)target/test-classs文件夹中生成的测试类 我需要帮助我在这里错过了什么。
我正在将Grails2中的一系列单元测试升级到Grails3,并在使用Spock数据驱动测试格式驱动测试的域测试中遇到问题。 当我执行测试时,因为测试执行没有填充测试中的错误、字段和val引用。如前所述,这个测试适用于Grails2.5.5,所以我怀疑我缺少了Grails3中需要的一些东西。 Edited:我删除了原来在setup()中的mockForConstraints()调用,使其无效。
下面是源代码和测试代码,有人能让我知道我做错了什么吗?似乎根本没有调用dao mock并返回“USA”。我在网上做了一些研究,找不到我做错了什么。 下面是我的Spock测试代码:
编辑: 链接到repo示例:https://gitlab.com/bartekwichowski/spock-too-many
我一直试图在IntelliJ IDEA中创建一个带有Spock测试的Groovy项目。 下面是我遵循的步骤: 创建了Groovy项目并添加了Maven支持。 添加了Spock依赖项和插件。我使用的POM与此非常相似:https://github.com/mariuszs/java-spock-test-sample/blob/master/POM.xml 由于Groovy依赖项冲突,我从模块设置-