2011-10-27 3 views
2

프로그래밍 방식으로 TestNG을 사용하여 셀렌 테스트를 실행 중입니다. 내가 언급 한 순서대로 테스트 메소드를 실행하고 싶다.메소드 이름 시퀀스 지정 TestNG

TestNG.XML에 대해 사용하는 경우 해당 속성이 preserve-order="true"입니다. 유사한 기능 어떻게 TestNG.XMl을 사용하지 않고도이 기능을 사용할 수 있습니까?

setTestNames

TestNG tng= new TestNG(); 

tng.setTestClasses(new Class[] { A.class}); 

//tng.setTestNames 

tng.run(); 

A.class 지정된 클래스 수준 @Test을 데 작동하지 않습니다. 그래서 그 클래스의 모든 메소드는 테스트 케이스입니다. Testng은 A.에서 모든 메소드를 실행하고 있습니다. 클래스에 나타나는 순서대로 실행하고 싶습니다.

TestNG의에서

답변

4

또 다른 해결책은

@Test(dependsOnMethods = { "serverStartedOk" }) as stated in TestNG docs. 
의 사용이 될 것입니다 당신이

@Test(priority = 2) 
@Test(priority = 3) 

처럼 원하는 순서를 유지하기 위해 당신은

@Test(priority = 1) 

사용하고 모든 방법으로 변경

TestNG 문서를 검색 한 결과 annotatios를 사용하여 원하는대로 쉽게 작업 할 수 없습니다 ...

+0

하지만 셀레늄 프레임 워크를하고 있습니다. 그래서 그것은 일반적이어야합니다. 동적으로 위의 우리는 실행 순서에 넣을 수 없습니다. 하지만 IMethodInterceptor 사용하여 얻을 수 있어요. IMethodInterceptor를 구현하기 전에 Excel에서 setof 메소드를 가져와야합니다. 걱정 해주셔서 감사합니다. – kishore

1

testng.xml이 없으면 가장 쉬운 방법은 직접 IMethodInterceptor을 구현하는 것입니다.

+0

예. 마지막으로 IMethodInterceptor를 구현할 수 있습니다. 모두에게 감사드립니다. – kishore