Как сослаться на тест-проект в многопроектной установке с Gradle? - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть многопроектная настройка 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 не может разрешить или связать эти оба проекта, но я не знаю почему. Вы можете помочь мне с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...