방금 TestNG 팩토리를 중첩 할 수 있다는 것을 알게되었습니다. 예! 그러나 나는 모든 테스트 이름이 같은 것을 좋아하지 않는다.TestNG, 공장 및 매개 변수화 된 테스트 설명
testng.xml :
<suite>
<test name="TNGTST" >
<classes>
<class name="FactoryLevel1" />
</classes>
</test>
</suite>
FactoryLeve1.java :
import org.testng.annotations.Factory;
public class FactoryLevel1 {
@Factory
public Object[] createTest() {
Object[] res = new Object[3];
for (int i = 1; i <= 3; i++)
res[i - 1] = new FactoryLevel2(i);
return res;
}
}
FactoryLeve2.java :
import org.testng.annotations.Factory;
public class FactoryLevel2 {
int inst;
public FactoryLevel2(int inst) {
this.inst = inst;
}
@Factory
public Object[] createTest() {
Object[] res = new Object[10];
for (int i = 1; i <= 10; i++)
res[i - 1] = new TestClass(i * inst);
return res;
}
}
TestObj.java :
import org.testng.annotations.Test;
public class TestObj {
int inst;
public TestObj(int inst) {
this.inst = inst;
}
@Test
public void printMethod() {
System.out.println("Instance: " + inst);
}
}
이 내 예입니다
내 문제는 Intellij IDEA는 이름이 TNGTST [printMethod()]
인 모든 테스트를 보여 주며 젠킨스가 모든 테스트에서 비슷한 것을 보여줄 것이라고 추측합니다 (이 도구가 어떻게 작동하는지 모르겠습니다). 비 정적 방법에서 테스트 용으로 내 자신의 이름을 어떻게 든 만들 수 있습니까?