2013-05-07 4 views
0

TestNG 및 maven을 사용하여 실행되는 테스트가있는 프로젝트가 있습니다. TestNG는 여러 스레드에서 테스트 클래스를 실행하는데, 나에게 받아 들일 수없는 것은 하나의 스레드에서 모든 테스트 클래스를 실행하려고한다. 하나의 스레드에서 지정된 테스트 클래스 내에서 모든 테스트 메서드를 실행할 수 있지만 한 스레드에서 모든 테스트 클래스에서 모든 테스트 메서드를 실행하는 방법을 알고 있습니까? 이전에 각 테스트 클래스에 의존하지 않고이를 수행 할 수있는 간단한 방법이 있습니까?testng 한 스레드에서 모든 테스트 클래스를 실행하십시오.

maven surefire plugin을 구성하려고했지만 작동하지 않습니다.

<configuration> 
    <threadCount>1</threadCount> 
</configuration> 

답변

0

TestNG가 기본적으로 병렬로 실행되지 않으므로 testng.xml의 <suite> 태그에 어쩌면 병렬 모드를 사용해야합니다.

0

상황을 이해하지 못했습니다. 이상적으로는 서로 다른 테스트를 병렬로 실행할 수 없다면 테스트가 작성되는 방식에 문제가있을 수 있습니다. 모든 검사는 이상적으로 다른 검사에 의존해서는 안되며 병행하여 수행 할 수 있어야합니다. 병렬로 실행할 수없는 경우 다른 테스트에 의존하지 않도록 테스트를 리팩터링하는 것이 좋습니다.

+0

네, 이것은 단순한 단위 테스트에 적합합니다. 그리고 단위 테스트에도 잘 작동합니다. 그러나 통합 테스트를위한 별도의 프로젝트가 있으며 이러한 테스트는 공통 데이터베이스를 사용합니다. 예기치 않은 데이터베이스 데이터로 인해 한 테스트에서 다른 테스트가 중단되는 경우가 있습니다. –

+0

사실 내가 말하고자하는 것은 통합 테스트에도 마찬가지입니다. 각 통합 테스트는 비공유 데이터에 의존해야합니다. – Saurabh

+0

상황에 따라 다릅니다. 예를 들어, 어떤 필드로 정렬하여 테이블에서 첫 번째 레코드를 검색하려고합니다. 예를 들어, 가장 오래된 수정 날짜가있는 레코드 하나를 가져 오려고합니다. 그러한 테스트는 분류가 작동하는지 점검 할 것입니다. 그러나 다른 통합 테스트에서는 병렬 스레드에서이 테이블을 사용할 수 있으며, 예를 들어이를 정리하거나 새로운 것을 삽입 할 수 있습니다. –

관련 문제