运行 来自命令行的具有依赖项的 JUnit5
Running JUnit5 from Command line with dependencies
我有一个包含以下文件的 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 和 junit-platform-console-standalone-1.5.2.jar 和其他 library.jar 编译的。我用 IDE 验证了测试编译和 运行 成功,但我的问题是:
如何从命令行(Windows 命令提示符)运行 MyTests.class 中的所有测试,包括依赖于其他的测试-library.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。
给定布局
C:\MyProject\myPackage\MyTests.class
C:\MyProject\lib\junit-platform-console-standalone-1.5.2.jar
C:\MyProject\lib\other-library.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 参数,并直接调用 Junit main 方法。这应该允许以通配符方式将所有 jar 加载到 classpath 中。
奇怪的是 java -cp 不等同于 junit -cp 参数:
> java -cp ".;lib\*" org.junit.platform.console.ConsoleLauncher --scan-class-path
我有一个包含以下文件的 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 和 junit-platform-console-standalone-1.5.2.jar 和其他 library.jar 编译的。我用 IDE 验证了测试编译和 运行 成功,但我的问题是:
如何从命令行(Windows 命令提示符)运行 MyTests.class 中的所有测试,包括依赖于其他的测试-library.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。
给定布局
C:\MyProject\myPackage\MyTests.class
C:\MyProject\lib\junit-platform-console-standalone-1.5.2.jar
C:\MyProject\lib\other-library.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 参数,并直接调用 Junit main 方法。这应该允许以通配符方式将所有 jar 加载到 classpath 中。
奇怪的是 java -cp 不等同于 junit -cp 参数:
> java -cp ".;lib\*" org.junit.platform.console.ConsoleLauncher --scan-class-path