2017-12-27 23 views
1

Android Firebase 테스트 랩 - Orchestrator를 사용한 계측 테스트, 그 목적은 무엇입니까? <a href="https://firebase.google.com/docs/test-lab/web-ui" rel="nofollow noreferrer">the docs</a>에서

새로운 기능 : 계측 여러 가지 장점이 있습니다 안드로이드 테스트 Orchestrator를 독립적으로 앱의 계측 각 테스트를 실행 Orchestrator를 테스트뿐만 아니라, 하나의 단점 :

이 혜택은

없음은 공유되지 state : 각 테스트는 자체 계측 인스턴스 에서 실행되므로 공유 상태가 테스트를 통해 누적되지 않습니다.

격리 된 충돌 : 테스트가 중단되면 자체의 Instrumentation 인스턴스 만 사용되므로 스위트의 다른 테스트는 여전히 실행됩니다. .

단점

긴 런타임 : 각 테스트는 자신의 계측 인스턴스 을 실행하는이 테스트 과정이 전반적으로 약간 더 걸리는 것을 의미한다. 런타임이 증가하면 할당량 사용 또는 청구 시간에 영향을 줄 수 있으며 으로 인해 장치의 시간 제한이 초과 될 수 있습니다.

이제 로컬로 새 오케스트레이터를 실행하여 제대로 작동하는지 확인하는 것이 좋습니다. 내가 시도 ./gradlew connectedCheck

을 할 때

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

하지만 난 어떤 차이를 볼 수 없습니다 : Gradle을 의존성

testOptions { 
     execution 'ANDROID_TEST_ORCHESTRATOR' 
    } 

: 그래서 난 내 모듈의 build.gradle 파일에 testOptions를 추가 한 후 그것을 실행 물리적 장치를 연결하고 에뮬레이터 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] 

두 장치 모두에서 테스트를 실행 중입니다. 오케스트라가하는 일은 무엇입니까?

오케스트레이터의 목적은 무엇입니까?

+0

'com.android.support.test : orchestrator : 1.0.1'과 같은 다른 모든 종속성을 추가 했습니까? [여기] (https://developer.android.com/training/testing/junit-runner.html#ato-gradle) 및 [여기] (https://developer.android.com/topic/libraries/testing- support-library/packages.html) – MatPag

+0

예. 나는 질문을 갱신 할 것이다. 봐. – j2emanue

답변

1

Android Test Orchestrator 각 테스트가 격리 된 환경에서 실행되는지 확인하십시오. 이는 이전 테스트의 결과가 향후 테스트 결과에 영향을 미칠 가능성이 적음을 의미합니다 (공유 상태로 인해).

Read more (Android 개발자 블로그 및 this question)

+0

. 각 테스트는 새로운 프로세스가 실행되도록 만듭니다. 안정성 만 있으면 도움이 될 것입니다. 답장을 보내 주셔서 감사합니다. – j2emanue