使用Gradle Spoon插件在特定位置启动测试

时间:2015-10-22 14:16:29

标签: android integration-testing android-espresso spoon

我在查找文档时遇到问题,如何解决这个问题。

我能够用:

启动小/中/大测试
./gradlew spoonSmall
./gradlew spoonMedium
./gradlew spoonLarge

或者使用此设置启动特定测试:

spoon {
    (...)

    if (project.hasProperty('spoonClassName')) {
        className = project.spoonClassName

        if (project.hasProperty('spoonMethodName')) {
            methodName = project.spoonMethodName
        }
    }
}

我可以启动特定文件:

./gradlew spoon -PspoonClassName=com.package.tests.MyTest;

我感兴趣的是可以启动位于以下位置的所有测试:

./gradlew spoon -PspoonClassName=com.package.tests

包。这两种方法都没问题。一些参数用于bash控制台或者可能用于创建我自己的注释并通过类似./gradlew spoonMyTests的方式启动。

我很感激您的建议/帮助。

1 个答案:

答案 0 :(得分:2)

来自官方文档:

  

有许多方法可以运行特定测试或一组测试。您   可以使用Spoon --size, - class-name或--method-name选项,或   您可以使用--e选项将参数传递给检测   跑步者,例如

     

- e package = com.mypackage.unit_tests

以下命令在从命令行直接执行Spoon时(而不是从gradle任务中执行)

java -jar spoon-runner-1.1.9-jar-with-dependencies.jar \
    --apk ExampleApp-debug.apk \
    --test-apk ExampleApp-debug-androidTest-unaligned.apk \
    --e package=com.package.tests

你需要找到一种方法将这个额外的参数传递给Spoon gradle插件。

更新

来自 Spoon Gradle插件的official doc

  

自定义检测参数

     

使用spoon扩展的instrumentationArgs属性来传递自定义   测试的参数:

     

spoon {instrumentationArgs = [" foo = bar"," name = value"]}

在您的情况下,这应如下所示:

spoon {   
    instrumentationArgs = ["package=com.package.tests"] 
}