【问题标题】:Distribute test sources in modularized project在模块化项目中分发测试源
【发布时间】:2020-12-06 12:48:08
【问题描述】:

我在受Jeroen Mols 启发的 android 应用中使用这种架构:

如果是功能模块或库模块,每个模块都包含自己独立的单元测试。

目前,我必须像我的测试规则一样复制代码,因为我没有找到一种方法将测试代码从我的核心模块传播到模块的测试中。

这既可以用于生产代码,也可以用于测试?这样做的正确方法是什么?

【问题讨论】:

    标签: android testing gradle architecture


    【解决方案1】:

    您可以创建一个新模块,例如 test-shared,您可以在其中添加您在测试不同模块时共享的代码,例如自定义规则、测试数据等。

    然后将这个 test-shared 模块包含在您的其他模块中,使用:

    testImplementation(project(":test-shared"))
    

    Google IO 应用使用了类似的策略:https://github.com/google/iosched/tree/master/test-shared

    【讨论】:

      【解决方案2】:

      您将在 JavaKotlin 模块中使用 Gradle test fixtures plugin

      测试夹具通常用于设置被测代码,或提供旨在促进组件测试的实用程序。除了javajava-library 插件之外,Java 项目还可以通过应用java-test-fixtures 插件来启用测试夹具支持:

      testImplementation testFixtures(project(':core'))
      

      我不确定您是否也可以使用 Android 模块定义测试装置。我对 IDEA 也有一些小问题。我尝试使用xyz.tynn.idea.fix 插件修复这些问题。但主要是 Gradle 的一个不错的工具。

      您会在 Stop Repeating Yourself: Sharing Test Code Across Android Modules 上找到 Michael Evans 的一篇不错的帖子。

      【讨论】:

      猜你喜欢
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 2010-12-16
      • 2018-04-19
      相关资源
      最近更新 更多