junit 平台控制台“--classpath DIR/*”不起作用

junit platform console "--classpath DIR/*" doesn't work

提问人:Hassan Shamseddine 提问时间:11/16/2023 更新时间:11/16/2023 访问量:12

问:

因此,我一直在尝试使用intelliJ覆盖代理“intellij-coverage-agent-1.0.735.jar”来生成与intellij结果相同的测试覆盖率报告。要执行测试,我必须使用 junit5 平台控制台“junit-platform-console-standalone-1.10.1.jar”。但是,此方法产生了以下错误:

$ java -javaagent:intellij-coverage-agent-1.0.735.jar=config.args -jar junit-platform-console-standalone-1.10.1.jar --scan-classpath -cp target/classes:target/test-classes/
 
Failures (1):
  JUnit Jupiter:ExampleTest:evensTest()
    MethodSource [className = 'x.y.codecoverage.example.ExampleTest', methodName = 'evensTest', methodParameterTypes = '']
    => java.lang.NoClassDefFoundError: com/google/libs/lib/LibName

此问题的原因是 junit 控制台需要库来执行测试。因此,我使用maven-dependency-plugin将库生成到项目内部的目录,并将该目录的路径与“*”传递给/,如下所示:--classpath-cp

$ java -javaagent:intellij-coverage-agent-1.0.735.jar=config.args -jar junit-platform-console-standalone-1.10.1.jar --scan-classpath -cp target/classes/:target/test-classes/:target/lib/*

但无济于事,问题仍然存在。

最终,我尝试在类路径中指定库的名称,如下所示:

$ java -javaagent:intellij-coverage-agent-1.0.735.jar=config.args -jar junit-platform-console-standalone-1.10.1.jar --scan-classpath -cp target/classes/:target/test-classes/:target/lib/LibName.jar

它奏效了。但是现在我必须为每个项目传递库,并且我正在尝试在所有 maven 项目的 CI/CD 管道中使用它,并且手动或通过脚本执行此操作听起来有悖常理。

如果您需要更多信息,请告诉我。 感谢您的帮助。

java spring-boot intellij-idea 代码覆盖率 junit5

评论

0赞 johanneslink 11/16/2023
因此,您发现 Java 的 -cp 选项不适用于通配符,正如文档中所述。你的问题是什么?

答: 暂无答案