2012-06-14 2 views
5

TestNG + Selenium 사용시, 클래스의 실행 순서를 보장 할 수 없습니다. 아래에 지정된 순서 (testng.xml)가 작동하지 않습니다. - ClassTwo가 먼저 실행되고 ClassOne이 실행됩니다.TestNG.xml에 지정된 순서가 유지되도록하는 방법은 무엇입니까?

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="ABC" parallel=""> 
    <test verbose="2" name="xyz" annotations="JDK" preserve-order="true"> 
    <classes> 
     <class name="script.ClassOne"/> 
     <class name="script.ClassTwo"/> 
    </classes> 
    </test> 
</suite> 

어떻게 TestNG.xml에 지정된 순서가 유지되도록 할 수 있습니까? TestNG documentation에 따르면

+0

보존 주문은 나를 위해 일합니다. 간단한 테스트가있었습니다. UR 코드를 게시하고 출력 할 수 있습니까? –

+0

이것은 여전히 ​​고장났습니다. 이 문제의 해결 방법은 무엇입니까? – sebnukem

답변

4

:

기본적으로 TestNG를들은 XML 파일에서 발견되는 순서대로 테스트를 실행합니다. 이 파일 에 나와있는 클래스 및 방법, 예측할 수없는 순서대로 실행되도록하려면 거짓

로 보존 주문 속성 을 설정

나는 그것이 기본적으로 설정되어 있기 때문에 preserve-order가 밖으로 속성 떠나 제안 .

  1. 호출 프로그래밍 테스트 :

    그러나 시험 방법/클래스에 특정 순서를 강제로 다른 두 가지 옵션이 있습니다.

  2. method interceptor을 구현하십시오. 테스트 목록이 나열됩니다.
+1

하지만 내 경우에는 testng.xml에 정의 된 실행 흐름을 따르지 않습니다. 실행 흐름을 testng.xml에 따라 수행해야합니다. 보존 순서를 생략하면 문제가 계속 발생합니다. 이유는 무엇입니까? – Mandy

+0

이 플래그가 기본적으로 설정되지 않은 이전 버전의 TestNG를 사용 중일 수 있습니다. 최신 버전을 사용하고 있는지 확인하십시오. –

+0

정의 내의 컬렉션 안에 원하는 순서대로 명시 적으로 나열하면 메서드 순서가 잘 작동합니다. 그렇지 않으면 예기치 않은 순서로 진행됩니다. –

0

.... 이벤트가 끝난 후 약간의 문제가 있었지만 같은 문제가 발생하여 여기에있는 것을 발견했습니다. 개별 시험의 @Test 주석의 우선 순위로 표시 내 경우에는, 그래서하지만 예를 script.ClassTwo 당신은 단지에 평행 값을 설정해야 script.ClassOne

4

보다 더 높은 우선 순위를 가지고 있었다 때문에 그것이 결국

없음

그것은 나를 위해 작동합니다!

관련 문제