Gradle任务只执行uiTests

时间:2018-04-25 07:28:13

标签: android gradle android-espresso

我已经使用默认的Gradle任务获得此Android。在Android项目中,有一个androidTest包,其中包含integrationTestsuiTests。我还有两个Kotlin类,包含一组要调用的测试类。

但是,./gradlew connectedAndroidTest同时运行integrationTestsuiTests,我想将其分开。我提出了多种解决方案:

  1. Android Studio的运行配置。但是,这并未检入VCS,因此我们无法访问Jenkins构建服务器。
  2. 使用Groovy语言添加Gradle任务,但是,不鼓励在新任务中调用另一个gradle任务。
  3. 所以我正在寻找一种只测试integrationTestsuiTests的方法。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我现在要给你一个便宜又开朗的答案。也许其他人将能够提供更充分的。

由于所有测试似乎都是同一源集的一部分,因此您需要以其他方式区分它们。最合适的解决方案是您的测试库对分组的任何机制,然后您可以utilise from Gradle

或者,使用类似命名约定的东西来区分UI测试和集成测试。

您的工作取决于您希望构建如何处理这些不同的类别。主要选项包括:

  1. 使用命令行中的test filtering - 通过--tests选项 - 仅运行集成或UI测试。请注意,过滤仅适用于类名,因此您必须使用命名约定方法。

  2. 配置相应的Test任务 - 是connectedAndroidTest吗? - 这样,如果设置了特定的项目属性,它将根据该项目属性的值运行集成测试或UI测试。这涉及在配置中使用if条件。这种方法适用于过滤和分组。

  3. 添加两个额外的Test任务,一个执行集成测试,另一个执行UI测试。你会保持connectedAndroidTest不受影响。这是我首选的方法,但需要比其他方法更多的代码。

  4. 这个答案缺少很多关于如何实施这些解决方案的细节,但是我担心现在填写这个细节对我来说太费时间了。正如我所说,希望有人会得到更全面的回答。