为了账号安全,请及时绑定邮箱和手机立即绑定

Gradle 找不到 JUnit 平台

Gradle 找不到 JUnit 平台

梦里花落0921 2023-04-19 10:31:55
我最近升级到 JUnit 5,并且我正在尝试通过 junit-jupiter-vintage 维护一个 JUnit 4 套件,使用几乎在任何地方都可以找到示例的地方提供的确切说明。请注意,我正在使用离线构建,因为我必须这样做,所以虽然我可以下载我需要的任何 Jar,但我没有主动连接到任何 Maven 存储库。Gradle 版本是 4.9,-all.zip 发行版,不是安装包而是解压缩并添加到 PATH 变量(一点也不重要)。apply plugin: 'java'repositories{  flatDir dirs: 'file:$rootDir/lib'}test{  useJUnitPlatform()}dependencies{  testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.0'  testCompileOnly 'junit:junit:4.12'  testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.0'  testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.5.1'}输出令人失望:NoClassDefFoundError: org/junit/platform/engine/support/hierarchical/HierarchicalTestEngine这些是在 JUnit Platform jar 中找到的文件,用作 JUnit 5 的启动引擎。Gradle 4.6 及更高版本应该原生支持该引擎,我可以在gradle-4.9/lib/plugins/  ...  junit-platform-commons-1.0.3.jar  junit-platform-engine-1.0.3.jar  junit-platform-launcher-1.0.3.jar  ...手动添加最新平台作为 testRuntimeOnly 依赖项似乎允许我的 JUnit 5 测试文件工作,但它无法检测到我的任何 JUnit4 测试。这也感觉像是一个明显的 hack,因为我可以找到的每个示例构建文件都不需要这样做。我希望如果我能解决 gradle 问题,我也能解决我的 JUnit4 问题。为什么我的(离线)gradle 构建无法找到 JUnit5 的主要测试运行程序?
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

Gradle 正在尝试使用 Maven 存储库来解决传递依赖关系,并且由于此安装是离线的,因此无法这样做。所有 JUnit 传递依赖项都需要位于运行时类路径中,在本例中这意味着手动包含它们。

我将使用 Maven 解决这个问题并将它们全部下载到这台连接互联网的机器上,并将它创建的本地存储库移动到需要它的系统上。


查看完整回答
反对 回复 2023-04-19
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信