【问题标题】:How do I get JUnit tests to run with Gradle project?如何让 JUnit 测试与 Gradle 项目一起运行?
【发布时间】:2021-03-15 22:08:35
【问题描述】:

问题
如何在 Java Gradle 项目中运行 JUnit 单元测试?

解释
我有一个 Java Gradle 项目。它使用的是 Vert.x,但现在我只是想在使用 Vert.x Unit 之前从基础知识(JUnit)开始。我想开始为我的项目编写单元测试。在单元测试方面,我是一个超级初学者。

我不知道如何运行我的单元测试。我的项目中有一个目录src/test/java,在那个目录中我有一个包com.mycompany.myproject.verticle。在那个包里面,我有一个类:

package com.mycompany.myproject.verticle;

import org.junit.test;

public class VerticleUnitTest {
    @Test
    public void testTest() {
        System.out.println("TESTING ::::::::");
    }
}

在我的build.gradle 文件中,我添加了以下内容:

testCompile('junit:junit:4.13')
...
sourceSets {
    test {
        java {
            srcDirs = ["src/test/java"]
        }
    }
}

然后在我的终端中,在项目的根目录中,我运行:

./gradlew test

我的测试没有打印出任何东西。我在控制台输出中没有看到任何表明测试已运行的内容。

我的尝试
我尝试更改 srcDirs 值以包含整个目录 (src/main/java/com/mycompany/myproject) 只是为了让它工作,即使我确信将来我会在不同的包中进行不同的单元测试。我尝试将srcDirs 值更改为.,然后再更改为/。这些似乎都不起作用。

我尝试只使用 ./gradlew clean build 构建我的项目,看看这是否会帮助我进行测试,但这不起作用。

我尝试将testCompile(...) 更改为testImplementation(...)。那没用。

【问题讨论】:

  • ./graldew test 命令的输出是什么?默认情况下,在 Gradle 中您不会有测试执行日志,但您可以通过配置测试任务来启用日志记录,例如:test { testLogging.showStandardStreams = true }
  • 您也可以在执行 Gradle 时增加日志级别,这将显示您的单元测试的输出:./gradlew test -i

标签: java unit-testing gradle junit build.gradle


【解决方案1】:

运行测试最简单的方法是使用命令在单独的模块中运行测试,并且您必须先执行 clean 命令才能获得干净的状态,例如:

./gradlew clean lib:testDebugUnitTest -i

在这种情况下,模块名称为“lib” - 将其更改为您的模块名称。 如果您在应用中有测试 - 将其命名为 app:testDebugUnitTest

论据 -i

  • 只会让您获得更多关于后面运行的所有内容的信息。

【讨论】:

    猜你喜欢
    • 2018-08-14
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2021-06-27
    • 2019-12-01
    • 2014-01-09
    • 2013-06-17
    • 2017-03-28
    相关资源
    最近更新 更多