문제

Android/Gradle 프로젝트가 있습니다.테스트를 실행하고 싶을 때마다 다음을 실행합니다.

./gradlew connectedInstrumentTest

내 프로젝트의 테스트 폴더에서 모든 테스트를 실행합니다.

내 테스트 폴더에는 여러 자동화 테스트와 비자동화 테스트가 있습니다.나는 느린 자동화 테스트 없이 빠른 비자동화 테스트를 실행하는 데 주로 관심이 있습니다.

하나의 특정 클래스 또는 이와 유사한 특정 테스트 세트만 실행하는 방법이 있습니까?나는 기본적으로 원할 때 몇 가지 테스트만 실행하도록 선택할 수 있도록 모든 종류의 분리에 대해 묻고 있습니다.


샘플 프로젝트를 만들었습니다. 여기.

편집하다 local.properties Android SDK를 가리킵니다.

다음으로, 에뮬레이터를 시작하거나 휴대폰을 컴퓨터에 연결하세요.그런 다음 다음을 사용하여 테스트를 실행할 수 있습니다. ./gradlew connectedInstrumentTest --info.그러면 모든 테스트가 실행됩니다.

내가 알아낼 수 없는 것은 모든 테스트가 아닌 하나의 클래스에서만 테스트를 실행하는 방법입니다.

도움이 되었습니까?

해결책

Android Gradle 플러그인 1.3.0부터

버전 1.3.0부터 Android Gradle 플러그인이 전달해야 하는 인수를 (마침내!) 지정할 수 있습니다. InstrumentationTestRunner.

예를 들어 다음과 같이 주석이 달린 테스트만 실행하려는 경우 @SmallTest 나머지는 무시합니다.

android {
  //....
  defaultConfig {
  //....
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    testInstrumentationRunnerArgument "size", "small"
  }
}

오래된 해결 방법플러그인 1.3.0 이전에는 그렇게 할 수 없었지만 약간의 해결 방법을 찾았습니다.기본적으로 나는 다음과 같이 주석을 달았습니다. @SmallTest 빠른 테스트에 주석을 달고 InstrumentationTestRunner 전체 제품군이 아닌 해당 제품군만 실행할 수 있습니다.

예제 코드는 다음에서 찾을 수 있습니다. 이 요점.

다른 팁

예, 여기 를보십시오.또한 Android 프로젝트에서도 작동해야합니다.불행히도 내가 아는 한 단일 방법을 실행할 방법이 없습니다. 전체 양복 만 제한 할 수 있습니다.

또한 장치에 테스트 슈트를 설치하고 ADB를 통해 수동으로 실행할 수 있습니다. "Nofollow"> 안드로이드 문서

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top