我正在开发一个Android新项目。目前,我正在使用Android studio作为IDE。我需要运行单元测试和系统(CI)测试流程,这些测试流程可以在本地计算机(JVM)和仿真器/真实设备上运行以进行检测。
请注意,我正在通过命令行运行所有单元测试。
为了获得我使用Jacoco的仿真器/真实设备的代码覆盖率。 并运行以下命令:gradlew createDebugCoverageReport 但是,我找不到任何方法从命令行运行带有覆盖率报告的本地机器单元测试。 唯一的方法是通过选择“使用代码覆盖率运行XXX”从Android工作室运行它:
请告知是否可以从命令行运行本地单元测试覆盖范围。并将报告作为html文件获取?
谢谢, Zachi
答案 0 :(得分:3)
如果我理解正确,您正尝试使用基于IntelliJ的Android工作室的覆盖能力来运行测试。
基本上可以使用IntelliJ的命令行工具完成。 您可以在这里阅读更多相关信息,但它通常允许您通过命令行完成从GUI完成的所有操作:
IntelliJ creating command line tools
有关IntelliJ工具覆盖范围的更多常规信息,请参阅此处:
希望它有所帮助,祝你好运。
答案 1 :(得分:1)
目前,在gradle Android工具中没有默认任务为 Junit(本地)测试创建报告。 但是,创建它们很容易。
只需按照说明在此处集成自定义jacoco.gradle
文件:
https://gist.github.com/mrsasha/384a19f97cdeba5b5c2ea55f930fccd4
您将执行以下任务:test[Flavor]UnitTestCoverage
因此,要生成报告,您只需:
$ ./gradlew test[Flavor]UnitTestCoverage
答案 2 :(得分:1)
可以使用android studio生成报告,在运行覆盖率测试后,将出现结果窗口,单击带有红色边框的按钮
查看此图片:
答案 3 :(得分:0)
如果您在使用gradle包装器或./gradlew tasks
,则在终端上运行gradle tasks
会得到可用验证任务的列表(请参见下面的屏幕截图):
您可以参考此link以获得更全面的测试命令行。
答案 4 :(得分:0)
您可以使用 testDebugUnitTest
,将其作为 ./gradlew <your_module_name>:testDebugUnitTest
运行,它将运行与此特定模块相关的测试 + 它将在 your_module/build/reports/tests/testDebugUnitTest
文件夹下生成包含覆盖范围的 html 报告。< /p>