TestNG 6.13.1을 사용하여 다음 2 가지 테스트를 병렬로 실행하려고합니다. 여기 TestNG, gradle and android studio를 사용하여 테스트를 병렬로 실행할 수 없습니다.
내 testng.xml 파일 내가 문서화 Gradle을 TestNG의 옵션을 사용하려고<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default test suite">
<!--parallel="methods" thread-count="4">-->
<listeners>
<listener class-name="org.testng.reporters.XMLReporter"></listener>
</listeners>
<test name="SignIn Test" >
<classes>
<class name="com.android.testinglibrary.DeviceTesting.Appium.SignInTest"/>
</classes>
</test>
<test name="HealthCheck Test" >
<classes>
<class name="com.android.testinglibrary.DeviceTesting.Appium.HealthCheckTest"/>
</classes>
</test>
</suite>
입니다 : 내가 실행하고 https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html
: https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/testng/TestNGOptions.html은 Gradle을 테스트 API 문서에서 찾을 수 있습니다 내 build.gradle 파일에 지정된 다음과 같은 작업 작업 real {
description = "real"
tasks.withType(Test) {
useTestNG() {
//maxParallelForks = 2
options {
suites 'src/test/java/com/android/testinglibrary/DeviceTesting/Appium/testng.xml'
setParallel('tests')
setThreadCount(2)
}
}
}
}
나는이 2 개 병렬 스레드에서 같은 '상태 검사 테스트'를 실행, 이러한 설정을 통해 다음 명령
gradlew real testinglibrary:testDebugUnitTest
를 사용하여 Windows 터미널에서 위의 작업을 실행하고 있습니다. 따라서 첫 번째 테스트가 실행 중입니다. 그 후 그것은 단일 스레드에서 SignIn 테스트를 실행합니다. 이상적으로 그것은 동시에 2 개의 스레드에서 HealthCheck Test와 SignIn Test를 시작해야하며 HealthCheck Test의 실행을 복제하면 안됩니다. 또한 testng.xml에서 thread-count를 읽지 않는 것 같습니다. 그래서 위의 testng.xml 파일에서 주석 처리했습니다. 또한 테스트의 병렬 처리를 수행하지 않았으므로 build.gradle에서 // maxParallelForks = 2를 주석 처리했습니다. gradle 내의 testng api는 버그가 있습니다.
안드로이드 스튜디오 테스트 자동화 프레임 워크에서 TestNG, gradle (maven이 아닌)을 사용하여 appium 통합 테스트의 병렬화를 수행하는 방법을 안내하십시오.
여기 https://stackoverflow.com/questions/46106378/how-to-use-existing-testng- 같은 문제를 참조
setParallel('tests') setThreadCount(2)
제거 및 XML에 해당 설정을 사용하는 suite-xml-file-and-set-thread-counts-programmually –같은 문제는 아닌 것 같습니다. 프로그래밍 방식으로 스레드 수 매개 변수를 전달하고 싶지 않습니다. 나에게 gradle 작업 실행은 testng.xml 파일 또는 gradle 명령 setThreadCount (#)에서 스레드 수를 읽지 않습니다. 마우스 오른쪽 버튼을 클릭하여 수동으로 testng.xml 파일을 실행하면 여전히 스레드 수 매개 변수가 igonres되고 모든 테스트가 순차적으로 실행됩니다. Testng의 버그를 닫고이 문제와 관련하여 android studio 팀에 문제를 제기했습니다. – Parin
> 마우스 오른쪽 버튼을 클릭하여 수동으로 testng.xml 파일을 실행하면 스레드 수 매개 변수가 계속 표시되어 모든 테스트가 순차적으로 실행됩니다. TestNG v13 및 v13.1은 ''(이미 마스터 분기에서 수정 됨, GITHUB-1636 참조)에 정의 된 스레드가있을 때 버그가 있습니다. 해결 방법은 다른 testng 버전을 사용하거나 '' 태그에 스레드 수를 정의하는 것입니다. –
kool79