提问人:Hassan Shamseddine 提问时间:11/16/2023 更新时间:11/16/2023 访问量:12
junit 平台控制台“--classpath DIR/*”不起作用
junit platform console "--classpath DIR/*" doesn't work
问:
因此,我一直在尝试使用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 管道中使用它,并且手动或通过脚本执行此操作听起来有悖常理。
如果您需要更多信息,请告诉我。 感谢您的帮助。
答: 暂无答案
评论