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

使用依赖项从命令行运行JUnit5

罗睿识
2023-03-14

我有一个包含以下文件的Java项目:
C:\MyProject\myPackage\MyTests.class
C:\MyProject\lib\junit-platform-console-standalone-1.5.2.jar
C:\MyProject\lib\other-library.jar

MyTests 文件是使用 IDE 编译的,该 IDE 具有 junit-platform-console-standalone-1.5.2.jar 和其他库.jar。我验证了测试是否使用IDE成功编译和运行,但我的问题是:
如何从命令行(Windows命令提示符)运行MyTests.class中的所有测试,包括依赖于其他库.jar文件的测试?

从我尝试过的“MyProject”目录中:

java -jar lib/junit-platform-console-standalone-1.5.2.jar -cp .;libs --scan-class-path --disable-ansi-colors

这确实运行了一些测试方法,但是对于使用other-library.jar文件的任何测试方法都会抛出ClassNotFoundException。有人知道我可能做错了什么吗?

我知道如果我用JUnit4 jar文件编译它,那么这个命令运行良好:

java -cp .;libs/* org.junit.runner.JUnitCore myPackage.MyTests

我基本上试图做同样的事情,但使用JUnit5。

共有1个答案

严劲
2023-03-14

给定布局<br>C:\MyProject\myPackage\MyTests。类<br>C:\MyProject\lib\junit-platform-console-standalone-1.5.2.jar

此命令应该有效。jar 显式列为包根目录

C:\MyProject> java -jar lib/junit-platform-console-standalone-1.5.2.jar   \
                   --class-path=.;lib\other-library.jar                   \
                   --scan-class-path

或者,java命令可以使用-cp参数运行,并直接调用Junitmain方法。这应该允许以通配符方式将所有jar加载到类路径中。
奇怪的是,java-cp不等同于junit-cp参数:

> java -cp ".;lib\*" org.junit.platform.console.ConsoleLauncher --scan-class-path
 类似资料:
  • 我有以下文件: 我运行以下命令: 但它什么也没做。依赖项不会得到更新,也不会反映在类路径上。命令的输出为: 不过,通过EclipseGradle插件实现这一点是可行的。

  • 我使用以下基本Maven命令生成了一个项目: 该项目是正确创建的,我可以测试自动生成的App类,而没有任何问题的说明: 稍后,我向POM添加了一些依赖项,获得了以下文件: 最后,为了测试起见,我修改了之前由Maven自己生成的App类: 一系列奇怪的事情发生了: > 即使在POM中指定了较新版本的依赖项,但在.m2文件夹中,下载的版本似乎较旧(例如,commons-lang3的版本为2.1和2.5

  • 问题内容: 到目前为止,我主要使用eclipse。现在,我正在尝试从终端运行Java,但程序包存在问题。 这是我的文件: 我使用编译此代码,然后运行,它给我: 当我删除一切正常。我想念什么? 给出: 问题答案: 您需要在一个目录级别上运行java命令,并以完全合格的软件包名称提供它,例如: 请参阅Java Launcher如何查找用户类 以了解其工作方式。

  • 问题内容: 我需要将项目的所有传递依赖项下载到命令行上的目录, 而没有 pom.xml文件或其他脚本。理想情况下,我将可以使用一个或两个命令来执行此操作。据我所知,这至少是mvn的两步过程。 将依赖项下载到本地存储库 将依赖项复制到lib目录 为了获得我运行的依赖 哪个很棒。不幸的是,目标参数对我没有帮助,因为它不会将所有可传递的依赖项放入目标中。 因此,现在我需要将该JAR文件及其所有传递依赖项

  • 问题内容: 我对java和maven都是陌生的,所以这可能非常简单。 如果我在这里按照maven2的说明进行操作: http://maven.apache.org/guides/getting-started/maven-in-five- minutes.html 一切正常。如果我随后更改以从远程存储库引入依赖项,则此依赖项的文件将存储在中。 使用说明中的语法来运行应用程序要求将绝对路径添加到我的

  • 问题内容: 我开发了OSGi捆绑包,通常通过Eclipse进行测试。在导出捆绑包之后,我得到了bundle.jar文件。我希望能够从命令行运行生成的文件。就像是: C:\ java -jar bundle.jar osgi_framework路径 但是,如何在其中包含osgi框架?而且,如何立即启动捆绑包? 问题答案: 您可以从命令行启动OSGi框架,如下所示。首先是春分: 注意 用VERSION