我正在使用Gradle来构建和测试我的项目.我有两个项目:
ProjA contains src\test\java\BaseTest.java
ProjB contains src\test\java\MyTest.java
MyTest extends BaseTest
Run Code Online (Sandbox Code Playgroud)
当我跑步时ProjB.gradle
,如何让它BaseTest
从ProjA 看到这个课程?
我尝试添加:
dependencies {
testCompile project('ProjA')
}
Run Code Online (Sandbox Code Playgroud)
但它没有用.
JB *_*zet 23
也许有更好,更简单的方法,更清洁的方式,但我认为你有三个选择.
既然BaseTest
是一个实际上是可重用测试库的一部分的类(你在两个项目中都使用它),你可以简单地创建一个testing
子项目,其中BaseTest在src/main/java中定义,而不是src/test/java.testCompile
其他两个子项目的配置都依赖于project('testing')
.
在第二个选项中,您将在第一个项目中定义其他工件和配置:
configurations {
testClasses {
extendsFrom(testRuntime)
}
}
task testJar(type: Jar) {
classifier = 'test'
from sourceSets.test.output
}
// add the jar generated by the testJar task to the testClasses dependency
artifacts {
testClasses testJar
}
Run Code Online (Sandbox Code Playgroud)
并且您将依赖于第二个项目中的此配置:
dependencies {
testCompile project(path: ':ProjA', configuration: 'testClasses')
}
Run Code Online (Sandbox Code Playgroud)
基本上与第二个项目相同,除了它不向第一个项目添加新配置:
task testJar(type: Jar) {
classifier = 'test'
from sourceSets.test.output
}
artifacts {
testRuntime testJar
}
Run Code Online (Sandbox Code Playgroud)
和
dependencies {
testCompile project(path: ':one', configuration: 'testRuntime')
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3493 次 |
最近记录: |