Как добавить testFixures в качестве зависимости JvmTestSuite с gradle
Я использую в сочетании сjvm-test-suite
. Я бы хотел, чтобы my был доступен как для модульных тестов, так и для моего пакета.
java-test-fixtures
добавляет в качестве зависимости к набору модульных тестов по умолчанию вместе с переходными зависимостями времени компиляции и времени выполнения. Как правильно добавить это вintegrationTest
слишком?
Следующее работает, но кажется немного повторяющимся:
plugins {
id 'java'
id 'application'
id 'java-test-fixtures'
id 'jvm-test-suite'
}
testing {
suites {
integrationTest(JvmTestSuite) {
dependencies {
implementation sourceSets.testFixtures.output
}
configurations {
integrationTestCompileClasspath.extendsFrom testFixturesApi
integrationTestRuntimeClasspath.extendsFrom testFixturesRuntimeClasspath
}
}
}
}
Я также могу использовать , но только если я объявляю зависимость в блоке зависимостей верхнего уровня, при этом блок зависимостей верхнего уровня появляется после объявления набора тестов:
testing {
suites {
integrationTest(JvmTestSuite) {}
}
}
dependencies {
integrationTestImplementation testFixtures(project)
}
Это работает, если все транзитивные зависимости настроены правильно. Любопытно, я не могу использоватьtestFixtures(project)
внутри объявления набора тестов - следующее:
testing {
suites {
integrationTest(JvmTestSuite) {
dependencies {
implementation testFixtures(project)
}
}
}
}
... не может оценить.
Есть ли предпочтительный способ, чтобы набор тестов зависел отtestFixtures
?
1 ответ
На данный момент это самый краткий вариант (Kotlin DSL).
dependencies {
implementation(testFixtures(project(":project_name")))
}
Возможно, API изменился с тех пор, как вы опубликовали вопрос, поскольку он все еще находится на стадии разработки.