Android的持续集成和测试环境和配置

软件测试 自动化测试 覆盖范围 安卓 持续集成
2022-01-13 15:16:42

我是一名 Android 开发人员,但我对我的测试和持续集成环境和配置不满意。

有人可以推荐我如何在 Android 中为一个好的 CI 配置最佳设置和工作流程?

包括:

  • 自动化构建工具:Maven、Ant、Graddle...
  • 测试工具和库
  • 测试配置:在哪里放置单元测试,集成测试......
  • 测试覆盖率
  • 持续集成服务器
  • 其他 QA 工具及其配置:FindBugs、PMD...
  • 一般工作流程

非常感谢任何使用 CI 的 Android 应用程序的推荐、建议或示例!

编辑:因为人们要求它,在这里我将解释我目前的环境如何,哪些事情不能完全说服我。无论如何,如果你认为完全不同的东西更好,不要犹豫,说出来。

  • 自动化构建工具:我同时使用Maven和 Ant。我的第一个想法是只使用 Maven(我喜欢它使您的项目变得如此简洁和结构化),但是看到 Ant 是 Android 团队使用的自动化构建工具,并且我无法使用 Maven 实现某些事情,我还添加了 Ant。稍后再谈。
  • Archetypes:我使用Maven Android Archetype android-release-archetype创建我的项目,并修改结果以包含我正在开发的 Android 库项目。所以,我有一个 Maven 父项目,它包含三个子模块:Android 库项目、Android 标准应用程序和 Android 测试项目(检测 Android 应用程序)。
  • 测试工具和库:标准 JUnit、Android Instrumentation、Robolectric 和 Robotium。
  • 测试配置:我在我的 Android 测试项目中使用 Instrumentation 和 Robotium 进行了测试,在我正在测试代码的同一个项目中进行了 JUnit 和 Robolectric 测试。原因是我无法让 Robolectric 在另一个项目中测试代码,但我更愿意在 Android 测试项目中进行所有测试(我不知道这是否是个好主意,但在我看来) . 另外,我仍然不知道(我没有时间寻找它)如何告诉 Maven 或 Ant 执行测试的子集。
  • 测试覆盖率:我无法使用 Maven 生成测试覆盖率报告,这就是我最终添加 Ant 的原因(您可以按照以下说明使用 Ant 获得测试覆盖率:构建 Android 应用程序和测试项目)。
  • 持续集成服务器:Jenkins 和Android Emulator Plugin(尽管我认为它与 SDK 的最新版本存在一些问题)。
  • 其他 QA 工具及其配置:我还没有看过。
  • 一般工作流程:Jenkins 每 5 分钟轮询一次项目中的更改,如果发现任何内容,则构建所有内容。此外,无论如何,我都有夜间构建。关于我的开发工作流程,我只是在白天不时地运行所有测试,并且总是在提交之前。我认为这并不理想,因为设备(仪器和机器人)中的测试需要很长时间,所以我宁愿在开发时只运行无设备测试,并在提交之前运行所有测试。
  • 欢迎所有建议和改进!

    1个回答

    软件测试俱乐部上发布了类似的问题

    Robotium看起来有助于满足您的一些需求?Stephen Janaway的道具)