当前位置: 首页 > 知识库问答 >
问题:

Gradle找不到JUnit平台

袁阿苏
2023-03-14

我最近升级到JUnit 5,我正试图通过JUnit jupiter vintage维护JUnit 4套件,使用提供的确切说明,您可以在任何地方找到示例。

注意,我使用的是离线构建,因为我必须这样做,所以虽然我可以下载我需要的任何Jar,但我并没有主动连接到任何maven存储库。

Gradle的版本是4.9,是所有的。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罐中找到的文件,用作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依赖似乎允许我的JUnit5测试文件工作,但它无法检测到我的任何JUnit4测试。这也感觉像是一个明显的黑客攻击,因为我可以找到的每个示例构建文件都不需要这样做。我希望,如果我能解决gradle问题,我也将解决我的JUnit4问题。

为什么我的(离线)gradle构建无法找到JUnit5的主测试运行程序?

共有1个答案

高承望
2023-03-14

Gradle试图使用Maven仓库来解决传递依赖关系,由于此安装处于脱机状态,因此无法这样做。所有JUnit传递依赖项都需要在运行时类路径上,在这种情况下,这意味着手动包含它们。

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

 类似资料:
  • 我试图在我编译并部署到aws Lambda的概念证明类上从gradle运行一个简单的junit测试。类接受一个POJO,只有一个属性。它自己编译得很好,并在AWS上工作。但是,当我跑的时候: 我收到以下错误: 如果我从中访问对象的属性没有问题。我是不是没有掌握一些关键的java或gradle概念?我已经重构了5种不同的方式,但我总是收到这找不到符号错误。有人有什么想法吗?这是我的简化代码。 } B

  • 问题内容: 我将Javadoc doclet与gradle一起使用,因此需要使用package.tools.jar包,它位于jdk的lib文件夹中(本例中为1.6.0_26)。 关键是gradle不会自动获取它,因此我将那个工具包添加到我的libs文件夹中,然后将其添加到dependencies.gradle。 现在,我想直接从JDK主页将其带入我的dependencies.gradle。有没有办

  • 我创建了一个具有以下配置的gradle项目: 当我执行“gradle build”时,出现以下错误消息: 找不到系统Java编译器。确保安装了JDK(不仅仅是JRE),并配置了JAVA_HOME系统变量以指向相应的目录。 这很奇怪,因为我有$JAVA_HOME set:

  • 我将javadoc doclets与gradle一起使用,因此需要使用包tools.jar,它位于jdk的lib文件夹中(在我的示例中为1.6.0_26)。 重点是gradle不会自动获取它,所以我将这个工具包添加到我的libs文件夹中,然后将它添加到dependencies.gradle。 现在我想把它直接从JDK中放到Dependencies.gradle中。有办法做到这一点吗?我已经在我的依

  • 我用的是Kubuntu 18.04 每当我在Eclipse中的Gradle项目中创建一个新的JUnit测试用例,并且当我单击:Test.java->Run As->JUnit Test时,这个测试文件将转到src/Test/java Gradle项目捕获 未找到JUnit测试的消息

  • 我有一个项目,我有apk,但我在calculate.java文件中更改了一个值,我想重建项目。但出现以下错误。我该怎么办?我不是android Studio开发人员,我只是一个新手。”找不到com.android.tools.build: gradle: 7.0.3。在以下位置搜索: https://dl.google.com/dl/android/maven2/com/android/tools