android - Gradle任务仅执行uiTests

标签 android gradle android-espresso

我有这个Android,带有默认的Gradle-tasks。在Android项目中,有一个androidTest包,其中包含integrationTestsuiTests。我还有两个Kotlin类,其中包含一组要调用的测试类。

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

  • Android Studio的运行配置。但是,这尚未 checkin VCS,因此我们无法访问Jenkins构建服务器。
  • 用Groovy语言添加Gradle任务,但是不建议在新任务中调用另一个gradle任务。

  • 因此,我正在寻找一种仅测试integrationTestsuiTests的方法。我怎样才能做到这一点?

    最佳答案

    我现在要给你一个廉价而愉快的答案。也许其他人将能够提供更全面的服务。

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

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

    然后,您要做什么取决于您希望构建如何处理这些不同的类别。主要选项包括:

  • 从命令行使用test filtering-通过--tests选项-仅运行集成或UI测试。请注意,过滤只能通过类名进行,因此您必须使用命名约定方法。
  • 配置适当的Test任务-那个connectedAndroidTest吗? —因此,如果您设置特定的项目属性,它将基于该项目属性的值运行集成测试或UI测试。这涉及在配置中使用if条件。此方法适用于过滤和分组。
  • 添加两个额外的Test任务,一个任务执行集成测试,另一个任务执行UI测试。您将保持connectedAndroidTest不变。这是我的首选方法,但是比其他方法需要更多的代码。

  • 这个答案缺少有关如何实现这些解决方案的很多细节,但是现在恐怕填写这些细节对于我来说太耗时了。就像我说的那样,希望有人会给出更完整的答案。

    关于android - Gradle任务仅执行uiTests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016405/

    相关文章:

    java - 无法将 ArrayList 数据加载到 android 中的微调器

    javascript - xdk按钮没有任何作用

    java - 使用 gradle 与 spring mvc 进行 Bootstrap

    java - 如何使用Gradle将文件从父项目复制到子项目

    android - 如何使用express编写recyclerview拖放的测试用例

    android - 事件未显示在 firebase 上

    java - JMock jar 不适用于 Android 测试项目(项目未构建)

    gradle - 找不到插件[id: 'com.github.johnrengelman.shadow',版本: '5.2.0']

    android - Espresso 测试 - Android

    当我尝试使用 espresso 填充多个编辑文本时,抛出 android.support.test.espresso.InjectEventSecurityException