java - 强制 JUnit gradle 任务在项目中使用 jar 构建

标签 java eclipse gradle junit jar

我有一个 gradle 项目,它在 build/libs 文件夹中生成一个 jar ( myFoo.jar )。 我有一些 JUnit 测试来测试 myFoo.jar 中的类。 JUnits 运行良好,除了运行测试时,测试在类路径中使用 bin/运行,并且类加载器并未真正加载 build/libs/myFoo.jar。相反,测试在类路径中使用 bin/运行。因此,除了少数之外,JUnit 都通过了。

我的一个测试验证了 jar 中资源文件夹下的一些文件,并且这些测试因运行“测试”任务而失败。

有没有办法让 gradle 测试任务从类路径中删除 bin/并改为包含 build/libs/myFoo.jar ?

最佳答案

Id 使用以下代码来解决该问题。此语句修改测试的类路径,并在类路径之前添加 gradle 创建的 jar。

test {
    classpath = "$buildDir/libs/"+jar.archiveName,
                 "$buildDir/classes/test",
                 configurations.runtime 
}

Gradle 论坛 https://discuss.gradle.org/t/force-junit-gradle-task-to-use-the-jar-build-in-the-project/18543了解详情。

关于java - 强制 JUnit gradle 任务在项目中使用 jar 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376088/

相关文章:

java - 在java上模拟URL输入

java - 访问 build.gradle 中的 versionName

android - Gradle Build 卡在生成调试源上

android - Android Gradle重复 jar

java - 使用 Jetty 和 Gradle 自动重新加载静态内容

java - Java 中的无符号整数到 float

java - 如何在 Java 中解析 HTML 字符串?

当我双击我的 jar 文件时,java 应用程序被打开两次

eclipse - 从远程分支创建分支 (EGit)

java - CTRL-G 在 Eclipse 中做什么?