如何解决在模块化项目中分发测试源
我在受Jeroen Mols启发的android应用中使用了这种架构:
每个模块都包含自己的单元测试,如果它是功能模块或库模块,则它们是独立的。
当前,由于没有找到将测试代码从核心模块传播到模块的测试中的方法,因此我不得不复制类似于测试规则的代码。
这既可以用于库尔的生产代码,又可以用于测试?正确的方法是什么?
解决方法
您可以创建一个新模块,例如test-shared
,您可以在其中添加在测试不同模块时共享的代码,例如自定义规则,测试数据等。
然后使用以下命令将此test-shared
模块包含在其他模块中:
testImplementation(project(":test-shared"))
Google IO应用程序使用类似的策略:https://github.com/google/iosched/tree/master/test-shared
,您可以在 Java 或 Kotlin 模块中使用Gradle test fixtures plugin:
测试装置通常用于设置被测代码,或提供旨在促进组件测试的实用程序。除了
java-test-fixtures
或java
插件之外,Java项目还可以通过应用java-library
插件来启用测试装置支持:
testImplementation testFixtures(project(':core'))
我不确定您是否也可以使用 Android 模块定义测试装置。另外,我在 IDEA 方面遇到了一些小问题。我尝试使用xyz.tynn.idea.fix
插件修复这些问题。但是大多数情况下,它是 Gradle 中的一个不错的工具。
您会在Stop Repeating Yourself: Sharing Test Code Across Android Modules上找到Michael Evans的精彩文章。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。