我在optaplanner-rewrite中的单元测试使用OpenRewrite bom 1.11.0编写了以下代码:
@Override
public void defaults(RecipeSpec spec) {
spec.recipe(new AsConstraintBuilder())
.parser(JavaParser.fromJavaVersion()
.classpath("optaplanner-core"));
}而且它在Maven运行的很好。
但是,当我在IDE (IntelliJ)中运行单元测试时,我得到了以下错误:
java.lang.IllegalArgumentException: Unable to find runtime dependencies beginning with: 'optaplanner-core'
at org.openrewrite.java.JavaParser.dependenciesFromClasspath(JavaParser.java:97)
at org.openrewrite.java.JavaParser$Builder.classpath(JavaParser.java:250)这是因为我的IDE窗口打开了一个多项目,其中包括optaplanner-core和optaplanner-rewrite。我的测试运行的类路径中没有optaplanner-core.jar,只有optaplanner-core/target/classes。
如何在IntelliJ中运行单元测试?
发布于 2022-11-10 11:43:54
这不是一个合适的解决方案,但作为一个解决办法,您应该能够像这样加载整个类路径:
@Override
public void defaults(RecipeSpec spec) {
List<Path> classpath = new ClassGraph().getClasspathURIs().stream().map(Paths::get).toList();
spec.recipe(new AsConstraintBuilder())
.parser(JavaParser.fromJavaVersion()
.classpath(classpath));
}https://stackoverflow.com/questions/74386486
复制相似问题