首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openrewrite:在IDE (IntelliJ)中运行单元测试,它使用来自同一个多项目的类(不是jar中的包)

Openrewrite:在IDE (IntelliJ)中运行单元测试,它使用来自同一个多项目的类(不是jar中的包)
EN

Stack Overflow用户
提问于 2022-11-10 09:05:51
回答 1查看 43关注 0票数 1

我在optaplanner-rewrite中的单元测试使用OpenRewrite bom 1.11.0编写了以下代码:

代码语言:javascript
复制
@Override
public void defaults(RecipeSpec spec) {
    spec.recipe(new AsConstraintBuilder())
            .parser(JavaParser.fromJavaVersion()
                    .classpath("optaplanner-core"));
}

而且它在Maven运行的很好。

但是,当我在IDE (IntelliJ)中运行单元测试时,我得到了以下错误:

代码语言:javascript
复制
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-coreoptaplanner-rewrite。我的测试运行的类路径中没有optaplanner-core.jar,只有optaplanner-core/target/classes

如何在IntelliJ中运行单元测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-10 11:43:54

这不是一个合适的解决方案,但作为一个解决办法,您应该能够像这样加载整个类路径:

代码语言:javascript
复制
    @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));
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74386486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档