Плагин 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'

Вы не хотите помещать ни один из этих плагинов в свой модуль приложения. Они принадлежат библиотечному модулю, производящему приборы.

Другие вопросы по тегам