是否可以使用新的Android gradle构建框架运行单个测试类?
我有一个包含多个测试类的测试包(所有测试类都是InstrumentationTestCase类)。我已经能够设置我的build.gradle文件来运行测试包
defaultConfig{
testPackageName "com.company.product.tests"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
但是有没有办法在该软件包中只测试一个测试用例?否则我将使用年龄较大的adb shell am instrument -w .......
P.S。我现在没有时间切换到Roboelectric,但我确实看到它现在几乎是事实上的框架。
答案 0 :(得分:4)
使用android.test.InstrumentationTestRunner
否,这是不可能的。但是,您可以选择:
android.test.InstrumentationTestRunner
buildConfigField 'String', 'TEST_NAME', '${testName}'
,testName
如果设置为'"${project.properties.get("test")}"'
,否则为null testInstrumentationRunner
替换为您的自定义跑步者./gradlew connectedCheck -Ptest=com.example.Test.testSomething
Spoon是一个优秀的测试运行器扩展,除了其他功能(如漂亮的多设备测试报告)之外,还允许您运行单独的测试。由于您使用的是gradle,我建议使用Spoon Gradle Plugin,其中有一个示例,说明您想在自述文件中做些什么。
通过增加单元测试支持,Android现在支持运行单个单元测试。
这只是一个锚点任务,实际测试任务被称为
testDebug
和testReleas
等等。如果你想只运行一些测试,使用gradle --tests
标志,你可以做通过运行./gradlew testDebug --tests='*.MyTestClass'
。
编辑:我还应该补充一点,Spoon是运行测试的直接替代品。除了构建脚本中的几行之外,您不必修改任何内容即可使用它。
答案 1 :(得分:3)
正如https://stackoverflow.com/a/32603798中所回答的那样
android.testInstrumentationRunnerArguments.class