2011-04-19 3 views
3

testNg 및 Maven을 surefire 플러그인과 함께 사용하여 테스트를 실행합니다. 같은 시간대에 여러 개의 다른 구성 요소를 사용할 수 있기를 원합니다. 현재이 작업을 수행하기 위해 테스트 스위트를 정의하는 몇 가지 XML 파일이 있고 mvn test -Dtestfile =/path를 수행하고 그 스위트를 대신 사용할 수 있도록 pom을 설정했습니다.testng 및 maven을 사용하여 다른 테스트 스위트 실행

XML 파일을 하나의 파일로 결합하고 테스트 이름이나 다른 시스템을 기반으로 선택하는 방법이 있는지 궁금합니다.

편집 : Smoke, Sanity, Regression으로 정의 된 모든 테스트를 이미 완료했으며 특정 구성 요소에 대해 모든 회귀 분석을 실행할 수 있기를 원합니다. TestNG CLI를 실행하면 test1 comp1, comp2, comp3 등을 제공 할 수 있습니다. 여기서 각 구성 요소는 여러 개의 테스트를 포함하는 하나의 xml 모음에서 정의됩니다(). 나는 exec : java 플러그인을 사용하지 않아서 maven에서 이것을 수행 할 수있는 방법이 있는지 궁금했다. 당신이 할 수있는 일

답변

6

는 다른 프로필

<profiles> 
    <profile> 
     <id>t1</id> 
     <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.8.1</version> 
      <configuration> 
      <suiteXmlFiles> 
       <suiteXmlFile>testng.xml</suiteXmlFile> 
      </suiteXmlFiles> 
      </configuration> 
     </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 

를 정의 및 MVN -Pt1 ... 를 통해 명령 줄에서 전화를하거나 프로파일의 속성을 정의하고 configuraiton에 해당 속성을 사용하는 것입니다.

+0

나는 이것을 시도했다. 그래서, 다른 프로파일에 대해 다른 testng.xml 파일을 설정 했습니까? – 12rad

+0

오류가 계속 발생합니다. – 12rad

6

TestNG는 테스트 케이스 자체의 테스트 클래스/메소드 또는 suite.xml 파일에서 그룹을 지정하여 테스트 그룹을 지원합니다. 그룹을 사용하면 모든 테스트를 하나의 XML 파일에 저장할 수 있습니다. TestNG 사용자 안내서에서 Groups을 참조하십시오.

확실한 플러그인은 테스트 그룹을 기반으로 포함 또는 제외 할 수 있습니다 :

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.8.1</version> 
     <configuration> 
      <groups>${testng.groups}</groups> 
     </configuration> 
     </plugin> 

당신은 하나 개의 XML 파일에있는 모든 테스트를 넣고, 다음에 그룹 또는 그룹을 설정하여 실행하는 것을 선택할 수 있습니다 쉼표로 구분 된 그룹 이름 목록이어야하는 $ {testng.groups} 속성에 포함하십시오.

프로파일 또는 -Dtestng.groups=[groups to run] 명령 줄을 사용하여 POM의 $ {testng.groups} 속성 값을 정의 할 수 있습니다.

0

또한 TestNG를 사용하면 여러 개의 스위트를 하나로 결합 할 수 있습니다.

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="uber-smoke-suite" verbose="1" parallel="methods" thread-count="1" configfailurepolicy="continue"> 
    <suite-files> 
    <suite-file path="smoke_api.xml" /> 
    <suite-file path="smoke_ui.xml" /> 
    </suite-files> 
</suite> 

당신이 또한 동네 짱 제품군을 만들 수 있습니다 너무 그 하나에 모든 테스트를 결합,하지만 여전히 당신이 필요한 경우 하나의 제품군을 실행할 수 있습니다 : 당신은 하나 개의 제품군으로 API 및 UI 연기 테스트를 결합하기를 원한다면 예 :

-Dtestfile=smoke 
-Dtestfile=smoke_api 
-Dtestfile=smoke_ui 
관련 문제