Плагин Gradle Test Fixtures для разработки под Android
попытка использовать тестовые инструменты Gradle с Gradle 6.6.1, используя следующий набор плагинов
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-parcelize'
apply plugin: 'org.jetbrains.kotlin.kapt'
apply plugin: 'java-test-fixtures'
выдает ошибку в строках
org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method testFixturesApi() for arguments [io.kotest:kotest-property:4.3.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
(аналогичные результаты для
testFixturesImplementation
) Добавление
java-library
плагин, как того требует документация:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-parcelize'
apply plugin: 'org.jetbrains.kotlin.kapt'
apply plugin: 'java-test-fixtures'
apply plugin: 'java-library'
дает что-то вроде
The 'java' plugin has been applied, but it is not compatible with the Android plugins.
Как я могу заставить работать gradle testFixtures при сборке с помощью kotlin 1.4 (и, возможно, kotest) для Android на Ubuntu 20.04? В целом я намерен использовать настраиваемые генераторы котестов для создания инструментов тестирования свойств, совместно используемых несколькими деревьями исходных кодов тестирования под одним и тем же
app
проект, а именно
./app/src/test/java
./app/src/androidTest/java
Есть веские причины для совместного использования помощников по тестированию в поддержку сухости кода; такой подход не является предметом обсуждения; Я не ищу совета по этому поводу. Цель этого вопроса - способ получить
testFixtures
работает, так как я, очевидно, не понимаю, как это сделать, и ваша помощь в этом направлении очень ценится. Я могу предоставить дополнительные сведения, если в приведенном выше описании, намеренно кратком, отсутствуют необходимые подробности.
2 ответа
Они не поддерживаются в проектах Android, я тестировал на продакшене, а также создавал примеры проектов. У меня такая ошибка: «Невозможно найти вариант проекта: modtwo, обеспечивающий запрошенную возможность. Fictures: modtwo-test-fixtures: unspecified». Похоже, у них есть конфликты с ароматами продуктов. Также здесь неверная информация http://michaelevans.org/blog/2019/09/21/stop-repeating-yourself-sharing-test-code-across-android-modules/#disqus_thread, потому что, например, это не проект Android
apply plugin: 'java-test-fixtures'
apply plugin: 'java-library'
Вы не хотите помещать ни один из этих плагинов в свой модуль приложения. Они принадлежат библиотечному модулю, производящему приборы.