2013-02-19 4 views
1

멀티 스레드를 사용하여 테스트 할 Java maven 프로젝트가 있습니다. src/test에 testng.xml이 있고 maven surefire 플러그인이이 파일을 사용하도록 구성되었습니다. http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.htmltestng에서 다중 스레드가 실행되고 있습니까?

편집 : 그냥이 페이지를 좋아 추가 확실한 치어 항목

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-surefire-plugin</artifactId> 
<version>2.12.4</version> 
<configuration> 
    <suiteXmlFiles> 
    <suiteXmlFile>src/test/testng.xml</suiteXmlFile> 
    </suiteXmlFiles> 
</configuration> 
</plugin> 

나는 확실한 2.12.4을 사용하고 있습니다.

System.out.println(Thread.currentThread().getName()); 

항상 모든 실행 (풀 한 - 스레드 -을 동일한 출력이 있습니다

이 내가 인쇄 문이 여러 가지 시험 방법을 내 testng.xml 파일

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Testng" parallel="methods" thread-count="3"> 
    <test name="all" annotations="JDK5"> 
    <packages> 
     <package name="my.package.*"/> 
    </packages> 
    </test> 
</suite> 

입니다 1). testng이 병렬로 실행 중이면 다른 스레드가 실행 중일 것입니다.

제 질문은 : 왜 testng이 다중 스레드를 실행하지 않고 있습니까? testng이 다중 스레드를 실행하는지 확인하는 더 좋은 방법이 있습니까?

편집 : 클래스 나 메소드

나는 각각의 테스트 클래스가 자신의 스레드에서 실행하는 것 스레드 실행 있지만 각각의 방법. testng.xml에서 나는 parallel = "methods"를 설정 했으므로 메소드 당 그것을 수행해야합니다. 방법마다 할 수 있습니까?

+0

testng 6.8 및 maven surefire 플러그인 2.12.4 및 2.13과 함께 작동하며 다른 스레드에서 테스트가 병렬로 실행됩니다. 당신은 당신의 pom의 확실한 부분을 자세히 말할 수 있습니까? –

+0

나는 또한 testng6.8을 사용하고 있습니다 – clurect

+0

글쎄요, 나는 여전히 같은 행동을 봅니다. ur xml이 호출되고 있습니까? 실행중인 테스트가 ur xml로 지정한 테스트입니까? –

답변

0

답변을 찾았지만 충분한 스레드를 제공하지 못했습니다. 내 프로젝트에는 많은 테스트가 있기 때문에 testng은 메소드 당 새 스레드를 만들지 않습니다. 나는 그것을 10 개의 쓰레드로 바꾸었고 그것을 수정했다.

+0

덕분에 niharika_neo 도움 – clurect

0

이 경우 TestNG가 병렬로 실행되지 않습니다. 스레드에서 다른 브라우저를 정의하려면 ThreadLocal을 정의해야합니다. ThreadLocal을 사용하고 다른 인스턴스의 브라우저를 정의하십시오. 이 경우 다른 브라우저 ID를 얻게 될 것입니다.

관련 문제