我看到很多关于这个问题的帖子,但是没有一个解决方案适用于我。
问题在于JUnit5控制台启动器似乎无法找到我的测试,无论我尝试什么语法。我已经尝试使用--scan-classpath扫描它们,并使用-c直接指定类,包括包说明符,但都会生成NoClassDefFound错误。
使用--scan-classpath,控制台启动器可以成功运行,但不包括任何单元测试执行 - 某种原因找不到测试类。
树的结构如下:
问题在于JUnit5控制台启动器似乎无法找到我的测试,无论我尝试什么语法。我已经尝试使用--scan-classpath扫描它们,并使用-c直接指定类,包括包说明符,但都会生成NoClassDefFound错误。
使用--scan-classpath,控制台启动器可以成功运行,但不包括任何单元测试执行 - 某种原因找不到测试类。
树的结构如下:
junit-5-jars (the console standalone jar is in here)
src
mypackage
MyClass.java
MyClass.class
test
mypackage
MyClassShould.java
MyClassShould.class
从根本上讲,我尝试了第一个和最基本的命令:
java -jar junit5-jars/junit-platform-console-standalone-1.7.0-all.jar --class-path=test --class-path=src --scan-classpath
我尝试的所有变化都给了我以下结果:
Test run finished after 27 ms
[ 2 containers found ]
[ 0 containers skipped ]
[ 2 containers started ]
[ 0 containers aborted ]
[ 2 containers successful ]
[ 0 containers failed ]
[ 0 tests found ]
[ 0 tests skipped ]
[ 0 tests started ]
[ 0 tests aborted ]
[ 0 tests successful ]
[ 0 tests failed ]
这是在Mac上从bash运行的。在一个将所有类文件放在运行命令的根目录的项目中,我可以成功地使用控制台启动器运行测试。但如果类文件位于像此类的子目录中,则无法运行。有人有什么想法吗?(注意-请参见下面的答案,子目录不是问题-测试类名中的“Should”才是问题)。