상황 : 나는 두 개의 테스트 a()와 b()가 있습니다. b()는 "dependsOnMethods"매개 변수를 사용하여 a()에 종속됩니다. 두 가지 테스트에 서로 다른 데이터 세트가 있습니다. 테스트를 실행할 때 데이터의 순서가 유지되도록하는 방법이 있습니까?dataprovider에서 데이터 순서를 유지하는 방법은 무엇입니까?
예 : 난 항상 구글, 애플, 마이크로 소프트, 야후 될 수있는 결과를 원하는
@DataProvider(name = "test1")
public Object[][] createData1() {
return new Object[][] {
{ "Google" },
{ "Microsoft"},
};
}
@DataProvider(name = "test2")
public Object[][] createData2() {
return new Object[][] {
{ "Apple"},
{ "Yahoo"},
};
}
@Test(dataProvider = "test1")
public void verifyData1(String n1) {
System.out.println(n1);
}
@Test(dataProvider = "test2", dependsOnMethods="verifyData1")
public void verifyData2(String n1) {
System.out.println(n1);
}
. 또는 Microsoft, Yahoo, Google, Apple
아니지만 Google, Yahoo, Microsoft, Apple 또는 Google, Microsoft, Apple, Yahoo.
이것은 test1이 dataprovder의 첫 번째 매개 변수 집합을 사용하여 실행되는 경우 test2가 dataprovider의 첫 번째 매개 변수 집합과 함께 실행되어야 함을 의미합니다. 첫 번째 집합을 실행하기 전에 두 번째 테스트가 dataprovider의 두 번째 매개 변수 집합과 함께 실행되는 한 test1의 dataprovider에있는 두 번째 매개 변수 집합이 첫 번째 집합 전에 실행되는지 여부는 중요하지 않습니다. 이것을 달성 할 수있는 방법이 있습니까?
이것은 group-by-instances 매개 변수를 사용하여 해결할 수 있음을 알게되었습니다. (이전 버전을 사용했기 때문에 내 testng xml에서 찾을 수없는 옵션). testNg를 업그레이드하고 업데이트를 게시하려고합니다.
그룹 별 인스턴스 ,하지만 그것은 내 문제를 해결하지 못했습니다. – user3325862