У меня есть многопроектная настройка gradle.
:client:core
:client:desktop
:tests
В моем проекте ":tests
" у меня есть такая файловая структура
src/test/java/my/domain/as/package/TestRunner.java
В моем проекте ": client: desktop" у меня есть такая файловая структура
src/main/...
src/test/java/my/domain/as/package/ExampleTest01.java
Мои файлы gradle выглядят так: (desktop-client)
project(":client:desktop") {
apply plugin: "java"
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
sourceSets.main.java.srcDirs = [ "src/main/java/" ]
sourceSets.test.java.srcDirs = [ "src/test/java/" ]
dependencies {
testCompile project(":tests")
api project(":client:core")
...
}
}
( tests-project)
project(":tests") {
apply plugin: "java-library"
apply plugin: "java"
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
sourceSets.test.java.srcDirs = ["src/test/java/"]
dependencies {
compile project(":client:core")
compile "junit:junit:4.+"
compile "org.mockito:mockito-all:1.9.+"
...
testCompile 'junit:junit:4.+'
testCompile "org.mockito:mockito-all:1.9.+"
...
}
}
Теперь в моем ExampleTest01. java У меня есть следующее содержимое:
package my.domain.as.package.client.desktop;
import ...
import org.junit.Test;
import org.junit.runner.RunWith;
import my.domain.as.package.tests.MyTestRunner;
import static org.junit.Assert.assertTrue;
@RunWith(MyTestRunner.class)
public class ExampleTest01 {
@Test
public void simpleTest() {
assertTrue(true);
}
}
В моем <:tests>/src/test/java/my/domain/as/package/MyTestRunner.java
У меня есть что-то подобное :
package my.domain.as.package;
public class MyTestRunner extends BlockJUnit4ClassRunner {
...
}
Моя проблема в том, что связывание с тестовым проектом не будет работать, поэтому импорт в конкретном ExampleTest01.java
не может быть решен.
Кажется, что Gradle не может разрешить или связать эти оба проекта, но я не знаю почему. Вы можете помочь мне с этим?