【问题标题】:Test multiple android applications with same integration tests?使用相同的集成测试测试多个 android 应用程序?
【发布时间】:2013-07-24 06:12:56
【问题描述】:

我认为这是一个远大的目标,但是......

我们有这样的项目结构:

common-library
    - denmark
          - application
    - france
          - application
    - application-xxxxxx
          - application
          - integration-tests

每个应用程序都有不同的配置、翻译、不同的包名等等,但总的来说它们几乎相同。它们具有相同的功能、相同的用户界面等。

现在只有一个应用程序通过 Robotium 的集成测试进行了测试。有没有办法为其他应用程序“共享”相同的集成测试?

最好为每个应用程序提供“通用测试”和自定义/特定测试。有可能吗?

我们正在使用 maven 和 Jenkins 来满足我们的需求。

欢迎任何其他方法或建议。

【问题讨论】:

  • 迁移到 Gradle 是一种选择吗?使用 Gradle 构建系统,您可以将不同版本定义为风味,并且集成测试将在它们旁边进行(当您调用正确的目标时,清单将自动更新)。

标签: java android maven integration-testing


【解决方案1】:

好吧,假设您只需要维护一组集成测试,我会朝着拥有的方向前进:

  • 单独的 maven 模块仅包含集成测试
  • 我将在其中介绍多个 maven 配置文件,其中每个配置文件都指定了对仅要测试的模块之一的 maven 依赖项
  • 构建可以稍后在配置文件之间切换以仅激活特定构建

正如一些关于集成测试选项的注释所说 (http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing),我相信它也会影响这种方法:

这样做的缺点是它倾向于将集成测试与他们尝试测试的代码分开。结果,您可能会发现没有人“拥有”集成测试;通常你会有一个人,他的工作是分析集成测试并发现错误。 QA 很难,但如果不清楚谁“拥有”测试失败,那就更难了。

如果您在自动更改代码时运行包括集成测试(通过 Jenkins)在内的构建,则可能会出现另一个问题。模块依赖项不会自动启动您的集成测试。相反,您可能需要为每个配置文件定义一个 Jenkins 作业并手动定义正确的作业序列。 例如:如果 Jenkins 构建了丹麦应用程序 => 构建集成,使用配置文件丹麦,...

【讨论】:

  • 这实际上可能有效。但是由于需要AndroidManifest.xml 文件,我仍然可能会遇到一些问题。它们的配置对于到达应用程序是不同的。
  • 好吧,不确定具体的文件,但如果这些文件可以与应用程序捆绑在一起,我会这样做,否则,我会确保根据 maven 配置文件中包含正确的文件集成测试模块。
猜你喜欢
  • 1970-01-01
  • 2017-01-17
  • 2015-02-12
  • 1970-01-01
  • 2020-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多