Android Gradle 프로젝트에서 특정 테스트 세트만 실행하는 방법이 있나요?
-
21-12-2019 - |
문제
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"> 안드로이드 문서