有没有办法只在Android Gradle项目中运行一组特定的测试?

我有一个Android / Gradle项目.每当我想运行测试时,我运行:

./gradlew connectedInstrumentTest

它在我的项目的测试文件夹下运行我的所有测试.

我的测试文件夹有几个自动化测试以及非自动化测试.我最感兴趣的是在没有慢速自动化测试的情况下运行快速非自动化测试.

有没有办法只运行一组特定的测试,例如从一个特定的类或类似的东西?我基本上都在询问任何类型的分离,以便我可以选择在我想要的时候运行一些测试.

创建了一个示例项目here.

编辑local.properties以指向您的Android SDK.

接下来,启动模拟器或将手机连接到计算机.然后,您可以使用./gradlew connectedInstrumentTest –info运行测试.这将运行所有测试.

我无法弄清楚的是如何只在一个类而不是所有测试中运行测试.

自Android Gradle Plugin 1.3.0起

从版本1.3.0开始,您可以(最终!)指定Android Gradle插件必须传递给InstrumentationTestRunner的参数.

例如,如果您只想运行使用@SmallTest注释的测试而忽略其他测试:

android {
  //....
  defaultConfig {
  //....
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    testInstrumentationRunnerArgument "size", "small"
  }
}

旧的解决方法
插件之前1.3.0是不可能的,但我发现了一个小工作.基本上我用@SmallTest注释注释快速测试并使用InstrumentationTestRunner的自定义子类我只能运行它们而不是整个套件.

您可以在this gist中找到示例代码.

转载注明原文:有没有办法只在Android Gradle项目中运行一组特定的测试? - 代码日志