일부 셀렌 코드를 실행하는 testNG 제품군이 있습니다. 내가 가진 webapp에서 페이지 사이의 탐색을 테스트하고 있습니다. 사용자 유형에 따라 제한된 페이지에 액세스 할 수있는 네 가지 사용자 수준이 있습니다. 또한 Chrome과 IE에서이를 테스트해야합니다.왜 @BeforeTest 메소드가 이전 테스트의 마지막 요소로보고되는 이유는 무엇입니까?
내 testng.xml 설정에 대해 Mkyong.com tutorial을 따라갔습니다.
단일 testng.xml에서 모든 사용자와 두 브라우저에 대한 모든 탐색 테스트를 수집하도록 선택했습니다. 총 8 개의 테스트 클래스를 제공하며, 여기서 4와 4는 테스트가 실행되기 전에 동일한 구성 클래스가 실행됩니다.
testng.xml :
나는이 테스트를 실행하면 이제<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Releaseboard Local tests" parallel="none">
<test name="user1 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User1NavigationTests" />
</classes>
</test>
<test name="user2 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User2NavigationTests" />
</classes>
</test>
<test name="user3 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User3NavigationTests" />
</classes>
</test>
<test name="user4 chrome">
<classes>
<class name="testsuite.ChromeConfig" />
<class name="testcase.User4NavigationTests" />
</classes>
</test>
<test name="user1 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User1NavigationTests" />
</classes>
</test>
<test name="user2 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User2NavigationTests" />
</classes>
</test>
<test name="user3 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User3NavigationTests" />
</classes>
</test>
<test name="user4 ie">
<classes>
<class name="testsuite.IeConfig" />
<class name="testcase.User4NavigationTests" />
</classes>
</test>
</suite>
, 내가 기대하는 모든 8 테스트 클래스에 대해이 출력 : 그들은 빨간색 경우
그것은 중요하지 않습니다 또는 녹색이지만, XML의 모든 테스트 태그가 두 단계 위로 시작하고 항상 동일한 수준으로 시작될 것으로 기대합니다. 표시된 세 개 이상의 레벨도 있지만이 시점에서는 중요하지 않습니다.
하지만 출력은 다음 레벨 2가 이전 레벨 1 내부에 나타날 때가 있습니다. 그러면 @BeforeTest 주석이 달린 메소드가 실패합니다. 그것은 이전 테스트에서 실패한 후에도 레벨 1에서 실제로 테스트를 실행하기 때문에 그다지 나쁘지 않을 것입니다. 그러나 이전에 테스트가 표시되면 레벨 1에서도 @BeforeTest가 항상 실패하고 모든 레벨 3 테스트 메소드는 자동으로 건너 뜁니다. 아래 이미지 참조 :
끝에 시간이 라인의 모든
이 스크린 샷에서 실제 라인입니다. 나머지는 익명 성을 위해 편집되었습니다.어떻게하면 @BeforeTest 및 @AfterTest 메서드, setup 및 tearDown이 어떤 이유로 테스트로 나열되는지 확인하십시오. 두 가지 모두 실제 테스트 방법이없는 잘못된 테스트 내부와 다음 내부에서는 갑자기 실제 테스트 방법을 사용합니다. 이러한 오류는 매번 무작위로 나타납니다. 항상 다음 시험을 포함하는 구체적인 시험은 없습니다. 때로는 세 가지가 있으며 때로는 하나만 있습니다. 일관성있는 유일한 것은 결코 연속적으로 두 가지가 없다는 것입니다. 나는 정말로 여기서 무슨 일이 벌어지고 있는지 이해하지 못한다. 더 잘 설명하고 싶거나 더 많은 연구를하고 싶지만이 문제를 검색 가능한 용어로 끓이는 데 정말 힘든 시간을 보내고 있습니다. 현상금이 나올 때까지 답이 없을 수도 있다는 느낌이 들어요.
누구나 볼 수있는 다른 코드 예제를 게시 하겠지만, 지금은 어디서부터 시작해야할지 모르겠다.
이것이 내 생각에 실제 문제가 아닌 표현의 문제 일 수 있습니다. –