2

我在查找文档时遇到问题,我该如何解决这种情况。

我能够通过以下方式启动小型/中型/大型测试:

./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 之类的东西启动的方式。

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

4

1 回答 1

3

来自官方文档:

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

--e package=com.mypackage.unit_tests

直接从命令行(而不是从 gradle 任务)执行 Spoon 时,以下命令应该可以工作

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 插件官方文档

自定义检测参数

使用勺子扩展上的 instrumentationArgs 属性将自定义参数传递给您的测试:

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

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

spoon {   
    instrumentationArgs = ["package=com.package.tests"] 
}
于 2015-10-22T14:23:11.150 回答