Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Gradle运行JUnit测试?_Java_Gradle_Junit4_Build.gradle - Fatal编程技术网

Java 如何使用Gradle运行JUnit测试?

Java 如何使用Gradle运行JUnit测试?,java,gradle,junit4,build.gradle,Java,Gradle,Junit4,Build.gradle,目前我有以下build.gradle文件: 此build.gradle文件用于我的存储库。我所有的主文件都在src/model/中,它们各自的测试都在test/model中 如何正确添加JUnit4依赖项,然后在tests/model文件夹中运行这些测试 如何正确添加JUnit4依赖项 假设您正在解决标准Maven(或同等)回购协议: 是否在“测试/模型”文件夹中运行这些测试 以相同的方式定义测试源集: sourceSets { ... test { java

目前我有以下build.gradle文件:


此build.gradle文件用于我的存储库。我所有的主文件都在src/model/中,它们各自的测试都在test/model中

如何正确添加JUnit4依赖项,然后在tests/model文件夹中运行这些测试

如何正确添加JUnit4依赖项

假设您正在解决标准Maven(或同等)回购协议:

是否在“测试/模型”文件夹中运行这些测试

以相同的方式定义测试源集:

sourceSets {
    ...

    test {
        java {
            srcDirs = ["test/model"]  // Note @Peter's comment below
        }
    }
}
然后调用测试,如下所示:

./gradlew test

编辑:如果您改用JUnit 5,还有更多步骤需要完成,您应该遵循。

如果您使用默认的gradle包结构设置项目,即:

src/main/java
src/main/resources
src/test/java
src/test/resources

这样,您就不需要修改源集来运行测试。Gradle会发现您的测试类和资源位于src/test中。然后你可以像奥利弗说的那样跑步。需要注意的一点是:在使用gradle和IDE设置属性文件和运行测试类时要小心。我使用Eclipse,从中运行JUnit时,Eclipse选择一个类路径(bin目录),而gradle选择另一个(构建目录)。如果您编辑一个资源文件,并且在测试运行时看不到您的更改,这可能会导致混乱

如果您使用创建了项目,则应正确配置所有内容,并且只需运行

./gradlew clean test --info
  • 如果要查看测试输出,请使用
    --info
  • 如果要重新运行自上次更改以来已通过的测试,请使用
    clean

在Spring Boot中测试所需的
build.gradle
依赖项

dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}


出于某种原因,测试运行程序没有告诉您这一点,但它在
build/reports/tests/test/index.HTML中生成了一个HTML报告。不推荐使用
testCompile。Gradle 7兼容:

dependencies {
...
   testImplementation 'junit:junit:4.13'
}
如果您使用默认文件夹结构(src/test/java/…),那么测试部分就是:

test {
    useJUnit()
}
最后:

gradlew clean test

Alos请参阅:

如果您想在模块内添加一个源集,以便在所有现有源集的基础上进行测试,而不考虑活动的风格:

sourceSets {
    test {
        java.srcDirs += [
                'src/customDir/test/kotlin'
        ]
        print(java.srcDirs)   // Clean
    }
}
请注意操作员
+=
,如果要运行集成测试,请将
test
更改为
androidTest


GL

srcDirs=[“test/model”]
更加精确,因为它去掉了默认的测试源目录,而
srcDir“test/model”
添加了另一个目录。对于
main
源代码集也是如此。要将Eclipse构建文件定向到与Gradle相同的目录(可以防止一些令人沮丧的错误):项目-->属性-->Java构建路径-->默认输出文件夹:将“bin”替换为“build”。然而。。。根据我的经验,这似乎有一种令人不安的习惯,即“滑回”默认的“垃圾箱”,经常出人意料地出现。很高兴知道是否有办法让Eclipse默认使用“构建”。@据我所知,mike啮齿动物明确不鼓励为Eclipse和gradle共享相同的构建路径(参见示例)。好的,我支持更正。。。我想编译到同一个目录没有什么好处。在大多数情况下,EclipseBuilder功能只是一个验证工具:“哎哟,这不会编译,因为x、y和z”。@DivDiff我的src文件夹结构的设置方式与上面提到的相同,但当我进行gradle测试时,它什么都不会做。它根本不运行我的测试。有什么想法吗?@Gaurav,我邀请你去聊天室,这样我们就可以离线讨论了。
gradlew clean test
sourceSets {
    test {
        java.srcDirs += [
                'src/customDir/test/kotlin'
        ]
        print(java.srcDirs)   // Clean
    }
}