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

Men*_*hak 6 android gradle travis-ci android-gradle-plugin

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

./gradlew connectedInstrumentTest
Run Code Online (Sandbox Code Playgroud)

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

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

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


在这里创建了一个示例项目.

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

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

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

rci*_*ati 12

自Android Gradle Plugin 1.3.0起

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

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

android {
  //....
  defaultConfig {
  //....
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    testInstrumentationRunnerArgument "size", "small"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

您可以在此要点中找到示例代码.