我有一个 Gradle 项目,其中包含两个模块app
和test
,其中test
仅包含用于测试的实用程序。现在,我想设置此模块,因此它不包含任何输出到app
的 main 配置中;甚至不是偶然的。
implementation project(':test') # should fail or not contain any inputs
testImplementation project(':test') # should include all inputs
androidTestImplementation project(':test') # should include all inputs
如何配置test
使其具有这种行为?
我认为这与 Android 插件处理构建类型和风格的配置类似,但我也不确定如何弄清这一点。
答案 0 :(得分:0)
您可以为此使用注释: https://developer.android.com/studio/write/annotations#visible
另一种方法是将测试代码排除在名为sub_test
的新模块中,并在testImplementation
模块中使用该androidTestImplementation
模块的sub_test
或test
/ p>
答案 1 :(得分:0)
找到:Use separate test modules for instrumented tests,其中介绍了操作方法:
...应用
com.android.test
插件而不是com.android.library
。
答案 2 :(得分:0)
java-test-fixtures
插件的行为几乎与我希望的一样,只是有些冗长。
implementation project(':test') # should fail or not contain any inputs
testImplementation testFixtures(project(':test'))
androidTestImplementation testFixtures(project(':test'))
汤姆·特雷斯基(Tom Tresansky)Is the java-test-fixtures plugin incompatible with the Build and run using IntelliJ IDEA setting?询问并回答, Android Studio 不能很好地处理testFixtures
来源集。
Kotlin 或 Android 尚不可用。但是作为Michael Evans pointed out,已经有Android和YouTrack上的任务。
但是,使用 Kotlin JVM项目创建测试装置,并通过 Android 项目使用这些装置对我来说很好。