带有gradle的UnitTest,当测试Infrastructure在src / test / java文件夹中的某个其他项目中时

时间:2015-06-09 07:09:28

标签: unit-testing junit gradle multi-project

有两个java项目A和B,构建引擎是gradle。

这是一个多项目,A取决于B

A:build.gradle

...
dependencies {
    compile project (':B')
}
...

B在src/main/java中包含核心代码,在src/test/java中包含测试代码。 同样在src/test/java中的是一些测试基础设施类,如加载测试数据。

gradle :B:test工作正常

A-Project中的测试使用来自B-Project的测试基础设施类,这对于eclipse是好的,但对于gradle则没有。因为对B-Project的构建jar文件依赖仅包括来自src/main/java的类。

我们得到错误:

com.aaa.SomeClassFromAAAA.java:42: error: cannot find symbol
import com.bbb.InfrastructureTestClassFromBBB;

解决方案是什么?

1 个答案:

答案 0 :(得分:0)

这在Gradle论坛here上讨论。我们的想法是使用您的测试类构建JAR,并使其对您的A项目可见。还有一些注意事项说明为什么IDE难以实现。

另一种方法是将测试基础架构类移动到另一个项目的主要源中。这假设他们不依赖于A的主要来源。您可以在Gradle的代码库(https://github.com/gradle/gradle/tree/master/subprojects中的int*-test*文件夹)中看到类似内容。