java - Spock 用于在 Intellij 中测试 Java

标签 java maven intellij-idea groovy spock

我在使用 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
    }
}

我的项目树如下所示:

enter image description here

我尝试遵循一些教程,但可能我错过了一些东西。我的项目有什么问题以及为什么测试不起作用?

最佳答案

您的测试应该扩展规范

class PersonTest extends Specification {

您正在用 Groovy 编写测试,因此最佳实践是将它们保存在 src/test/groovy

关于java - Spock 用于在 Intellij 中测试 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41911901/

相关文章:

intellij-idea - intellij 访问无效的虚拟文件

java - 获取系统默认字体

java - 创建一个使用 mysql 数据库的 java 应用程序后,用户的计算机需要什么才能正常运行?

ruby-on-rails - 什么是 gem 安装 bundler ?

java - 使用 maven-assembly-plugin 创建两个可执行的 jar

testing - Flutter:如何加载文件进行测试

java - 优化非常大的数字的算术运算

java - 如何理解netty这样的通用代码?

maven - 将报告生成到时间戳文件夹时失败

java - IntelliJ 中的变量命名代码样式