Как в gradle тестовая конфигурация может объявить зависимость от тестовой конфигурации другого проекта? - PullRequest
0 голосов
/ 05 августа 2020

В gradle 5.6.2 у меня есть проект с подпроектами. Тесты в подпроектах имеют много общего кода, поэтому я бы хотел, чтобы тесты подпроектов зависели от тестов родительских проектов. Но ссылки в тестах не разрешаются, хотя ссылки в основных проектах разрешаются. В документации Gradle говорится об использовании объявления зависимостей «нотация карты», и этот блок зависимостей не генерирует ошибок:

dependencies {
    api project(":henchbot-api")
    testImplementation project(path: ':henchbot-api', configuration: 'testRuntime')
}

... но тесты не компилируются. Если я изменю testRunTime на testRuntimeClasspath, тогда gradle не сможет разрешить эту зависимость проекта.

1 Ответ

0 голосов
/ 06 августа 2020

вам также нужно будет объявить тестовый артефакт - см. https://docs.gradle.org/current/userguide/multi_project_builds.html#sec: project_jar_dependencies

в проекте henchbot-api

configurations {
    testLib
}

task testLibJar(type: Jar) {
    archiveBaseName = archivesBaseName + '-testLib'
    from sourceSets.test.output
}

artifacts {
    testLib testLibJar
}

в другом - зависимость

testImplementation project(path: ':henchbot-api', configuration: 'testLib')
...