【发布时间】:2018-07-23 17:21:39
【问题描述】:
我们当前的设置如下:一个根项目有九个子模块,它们混合在纯 Java 库和 Android 库之间。
每个模块都包含功能,其中一个模块是 main 模块,它通过合并所有必需的模块来构建 Android 应用程序。
每个模块都包含大量单元测试,我想在一个 gradle 步骤中执行它们。现在我正在为此使用gradlew test,但由于(例如)main 模块有多个product flavors,它会多次执行该模块中的单元测试(针对每种风格)。
理想情况下,我想只执行一次 main 模块单元测试,以获得某种风格和签名配置,但由于 testFlavorDebug 任务是在评估项目时创建的(据我所知)我在实际执行评估之前无法定义它。
我尝试在 afterEvaluate 块中查找任务,我尝试遍历所有模块、不同的组合和方式,但我似乎无法弄清楚如何正确设置它。
如果有人对这样的设置有一些指示或经验并可以帮助我,我会很高兴。如果您需要更多信息,请告诉我,我会提供,但就项目设置而言,多模块设置非常简单。
【问题讨论】:
-
为什么不直接覆盖 gradle 中的测试方法,让它只为主要风格运行?
-
谢谢。我已经尝试在我的
main模块中覆盖test任务,但这似乎也阻止了它为其他模块执行test任务。你有一个例子吗?编辑:似乎在clean之后它实际上确实执行了所有单元测试。 -
所以...它有效吗?
-
是的。如果您将其发布为答案,我会接受。
标签: android unit-testing gradle