1

文档

新功能:使用 Orchestrator 进行插桩测试 Android Test Orchestrator 独立运行应用程序的每个插桩测试,这有几个好处,但也有一个缺点:

好处

无共享状态:每个测试都在其自己的 Instrumentation 实例中运行,因此共享状态不会在测试之间累积。

独立崩溃:如果测试崩溃,它只会关闭自己的 Instrumentation 实例,因此套件中的其他测试仍然运行。

退税

更长的运行时间:每个测试都运行自己的 Instrumentation 实例,这意味着测试过程总体上花费的时间稍长。增加的运行时间可能会影响您的配额使用或计费时间,并可能导致您达到设备的超时限制。

现在它建议在本地运行新的编排器以确保其正常工作。所以我在将 testOptions 添加到我的模块的 build.gradle 文件后运行它:

testOptions {
        execution 'ANDROID_TEST_ORCHESTRATOR'
    }

具有 gradle 依赖项:

 androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestUtil 'com.android.support.test:orchestrator:1.0.1'

但我在做的时候没有看到任何区别./gradlew connectedCheck

我尝试插入物理设备并同时运行模拟器 api 26。所以我现在将两个设备连接到 adb。然后执行 ./gradlew connectedCheck。我在控制台终端中看到以下输出:

#./gradlew connectedCheck                  
Parallel execution with configuration on demand is an incubating feature.
> Configure project :app 
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
        at build_495ocpxnm4a4fvowoj4qizq7q.run(/Users/me/Development/QA/android/MyApp/app/build.gradle:303)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)
The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.
[newrelic.info] Android Gradle plugin version 3.+ detected. Using transform API
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
> Task :app:processLabsDebugGoogleServices 
Parsing json file: /Users/me/Development/QA/android/Myapp/app/google-services.json
Starting 39 tests on Nexus_6P_API_26_oreo_xxhdpi(AVD) - 8.0.0
Starting 39 tests on SM-G610F - 7.0
<====---------> 33% EXECUTING [4m 40s]

它正在两台设备上运行测试。这是协调器的工作吗?

编排器的目的是什么?

4

1 回答 1

1

Android Test Orchestrator确保您的每个测试都在隔离环境中运行。这意味着先前测试的结果不太可能影响未来测试的结果(由于共享状态)。

阅读更多关于 Android 开发者博客和这个问题的信息。

于 2017-12-27T10:15:58.983 回答