Java IntelliJ从根项目执行梯度测试

Java IntelliJ从根项目执行梯度测试,java,testing,intellij-idea,gradle,Java,Testing,Intellij Idea,Gradle,我的IntelliJ中有一个gradle多项目导入,我想执行一些测试类 结构如下: root |-module-a |-module-b 模块a依赖于模块b,因此在build.gradle中 当我使用shell中的gradle时,一切正常,我必须进入根目录项目目录并写: ./gradlew :module-a:test 一切都经过测试 当我在IntelliJ中单击“模块a”中的“运行“测试”时,我出现以下错误: A problem occurred evaluating root proje

我的IntelliJ中有一个gradle多项目导入,我想执行一些测试类

结构如下:

root
|-module-a
|-module-b
模块a依赖于模块b,因此在build.gradle中

当我使用shell中的gradle时,一切正常,我必须进入根目录项目目录并写:

./gradlew :module-a:test
一切都经过测试

当我在IntelliJ中单击“模块a”中的“运行“测试”时,我出现以下错误:

A problem occurred evaluating root project 'module-a'.
> Project with path ':module-b' could not be found in root project ':module-a'.
因此,IntelliJ似乎是从模块-a执行gradle命令,而不是从根执行(这应该是gradle想要的正确行为)


如何在IntelliJ内部执行此测试?我必须配置什么?

对于这样的多项目结构

root
|-module-a
|-module-b
根文件夹中只有一个
settings.gradle
,内容如下:

include 'module-a', 'module-b'
子项目文件夹不包含settings.gradle文件。然后将兄弟项目称为:

project(':module-b')
因此,您的依赖关系将声明为:

dependencies {
  compile project(':module-b');
}

有关多项目结构的详细信息,请参见。

您能告诉我settings.gradle文件在哪里吗?它通常与模块a和模块b文件夹位于同一文件夹中,以便可以运行非项目文件夹中的任务。因此,您可以尝试将其从module-a文件夹/I移动到根文件夹。每个文件夹中都有一个设置。gradle:module-a、module-b和root通常是a设置。gradle只存在于根文件夹中,而不存在于子项目中。我知道这很旧,但如果有人像我一样寻找类似的内容,我间接地觉得这个答案很有帮助。它让我考虑了我的智能设备设置有什么问题。我尝试更改运行配置,使其指向根项目的“build.gradle”而不是我的子项目,然后将“run”作为任务更改为“subproject:run”。对我来说就是这样,我一直在试图弄清楚为什么我的gradle跑步效果不错,但无法从intellij上运行。谢谢
dependencies {
  compile project(':module-b');
}