1

尝试使用 gradle 6.6.1 的 gradle 测试夹具,使用以下插件集

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.

在 Ubuntu 20.04 上使用 kotlin 1.4(可能还有 kotest)为 Android 构建时,如何让 gradle testFixtures 工作?我的总体意图是使用自定义 kotest 生成器来创建在同一app项目下的多个测试源树之间共享的属性测试装置,即

./app/src/test/java
./app/src/androidTest/java

共享测试助手以支持代码枯燥是有充分理由的;这种方法不是本次讨论的主题;我不是在寻求这方面的建议。这个问题的目标是一种开始testFixtures工作的方式,因为我显然不明白如何做到这一点,非常感谢您在这个方向上的帮助。如果上述描述故意简洁,但缺少必要的细节,我可以提供更多细节。

4

1 回答 1

1

android 项目不支持它们,我在生产项目中进行了测试,还创建了示例项目。我有这样的错误

找不到项目的变体:modtwo 提供请求的功能图片:modtwo-test-fixtures:未指定

似乎它们与产品口味有冲突。这里的信息也是错误的,因为在示例中它不是一个 android 项目。

于 2021-04-05T11:56:01.720 回答