2017-12-19 48 views
0

나는 testng.xml 아래에 몇 가지 테스트 케이스가있다. 내 testng.xml은 아래와 같습니다.@Test 주석이 testNG의 모든 테스트에서 먼저 실행되고 있습니까?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="AutomationPractice" parallel="none"> 
    <test name="Logins"> 
    <classes> 
     <class name="newMavenProject.Gmail_Login_Firefox"/> 
     <class name="newMavenProject.Facebook_Login_Chrome"/> 
    </classes> 
    </test> <!-- Logins --> 
</suite> <!-- AutomationPractice --> 

내 테스트 모두에서 @BeforeTest, @Test 및 @AfterTest 주석이 있습니다. testng.xml을 testNGSuite로 실행할 때. 브라우저가 두 테스트 (@BeforeTest)를 동시에 열고 Gmail_Login 테스트가 @Test 주석을 실행한다는 것을 알았습니다. 그러면 Facebook_Login_Chrome이 @Test 주석을 실행합니다. 그런 다음 Gmail_Login 테스트에서 @AfterTest 주석이 실행되고 (브라우저를 닫음) Facebook_Login_Chrome 테스트에서 @AfterTest 주석 (브라우저 닫기)이 실행됩니다.

Gmail_Login 테스트가 완전히 실행되고 (@BeforeTest, @Test, @AfterTest) Facebook_Login_Chrome 테스트가 완전히 실행될 수 있습니다 (@BeforeTest, @Test, @AfterTest).

감사합니다.

+0

이 문제를 시뮬레이트하는 데 사용하는 코드를 알려주십시오. 또한 스레드 ID를 인쇄 할 때 무엇이 ​​보이나요? TestNG는 명시 적으로 구성 될 때까지 그리고 병렬로 아무것도 실행하지 않아야합니다. 따라서 인쇄 스레드 ID 논리를 추가하고 출력을 공유 할 수 있습니다. 또한 사용중인 TestNG 버전을 포함하십시오. 오늘 발표 된 최신 버전은'6.13.1'입니다. –

+0

테스트 메소드를 실행하는 beforemethod와 aftermethod를 사용해야합니다. 테스트 태그에 대해 beforetest 및 aftertest가 실행됩니다. – Grasshopper

답변

0

<test> 태그가 실행되면 모든 메소드가 실행되고 포함 된 모든 클래스에서 @BeforeTest이 주석 처리됩니다.

설정 및 주석 해제 방법에 @BeforeClass@AfterClass 주석을 추가해야하는 것처럼 보입니다. TestNG documentation 따르면

:

@BeforeTest는 다음 주석 방법은 <test> 태그 실행할 내부 클래스에 속하는 모든 시험 방법 전에 실행된다.

@AfterTest : <test> 태그 내의 클래스에 속하는 모든 테스트 메서드가 실행 된 후에 주석 메서드가 실행됩니다.

@BeforeClass : 주석 처리 된 메소드는 현재 클래스의 첫 번째 테스트 메소드가 호출되기 전에 실행됩니다.

@AfterClass : 주석 처리 된 메서드는 현재 클래스의 모든 테스트 메서드가 실행 된 후에 실행됩니다.