Android 앱에서 테스트 인프라를 설정하기 위해 노력하고 있습니다. Android Studio, gradle, Espresso, MonkeyRunner, 에뮬레이터 및 실제 기기를 사용하고 있습니다. 나는 gradlew connectedAndroidTest
을 사용하여 AndroidTest를 실행합니다.AndroidTest가 실행되는 동안 다른 프로세스를 만드는 방법은 무엇입니까?
적절한 테스트 픽스처를 설정하는 데 테스트가 시작되기 전에 시작된 백그라운드 프로세스가 필요합니다. 테스트가 완료되면 분해됩니다. gradle 등으로 할 수있는 방법이 있습니까?
특히 제가 지금하고있는 일은 에스프레소 테스트 중에 MonkeyRunner와 함께 화면 캡처를하는 것입니다. 테스트 중간에 MonkeyRunner를 돌리는 것은 시간이 많이 걸리므로 데몬으로 실행하면 테스트 속도를 높일 수 있습니다. (나는 모든 것이 다소 혼란 스럽다고 생각하지만 궁극적으로는 화면 캡처 비교를위한 효율적인 방법을 찾고있다. 자바 라이브러리에 기본 방식으로 빌드 된 것이라면 그렇게 할 수있다). 이 경우 MonkeyRunner 프로세스가 스핀 업하여 장치에 연결됩니다. 그런 다음 AndroidTest 프로세스가 회전하여 MonkeyRunner 프로세스에 스냅 샷을 찍어 참조와 비교하도록 신호를 보내는 테스트를 실행 한 다음 AndroidTest는 다음 테스트를 계속 수행합니다.
다른 프로세스 패턴이 가능하게하는 다른 것들은 외부 통신이거나 테스트 픽스처에 필요할 수있는 다른 것들입니다.
왜 젠킨스를 사용하지 않으시겠습니까 ?? 나는 그것을 잠시 사용 해왔고 가상 머신을 부팅하고 거기에서 테스트를 실행하는 설정을했습니다. –
안드로이드 에뮬레이터를 사용하고 있습니까? 젠킨스 (Jenkins)로 전환하면 젠킨스 (Jenkins)는 계속 VM을 사용하여 에뮬레이터를 회전시키기가 어려워집니다. 임의의 VM은 문제가되지 않습니다. – TinyTheBrontosaurus
제 경험상 에뮬레이터는 어디서나 회전하기가 어렵습니다 !! 그래서 나는 항상 테스트 장치를 연결하여 젠킨스가 밤중에 움직 이도록합니다. –