私は初心者なので、ばかげた質問をしていたら親切に許してください。
「@BeforeTest」が失敗したときに問題に直面し、「@Test」は「@Factory」を介して実行されます。理想的には、「@BeforeTest」が失敗した場合、テストをスキップする必要がありますが、ここではスキップせず、@Test が実行されています。
この問題を明らかにするか、何が欠けているか教えてください。
TestNG XML:
<test name="FactoryTest">
<parameter name="callSSO" value="com.acc.Test1.callSSO"/>
<groups>
<run>
<include name="@mode@"/>
</run>
</groups>
<classes>
<class name="com.acc.FactoryTest"/>
</classes>
</test>
TestNG クラス:
public class ADFSTest {
public ADFSTest(Object testData) {
this.testData = (ArrayList) testData;
}
@Factory
public Object[] createTestInstances() {
Object[] testInstances = null;
try {
finalList = getTestData(); **<<<<---- GETS TEST INPUT FROM FILE (no complex stuff)**
testInstances = new Object[finalList.size()];
for (int i = 0; i < finalList.size(); i++)
testInstances[i] = new ADFSTest(finalList.get(i));
} catch (Exception e) {
e.printStackTrace();
}
return testInstances;
}
@BeforeTest(groups = { "group1" })
public void setUp() throws Exception {
boolean isADFSConfigComplete = false;
try {
System.out.println("*** IN SETUP ***");
isADFSConfigComplete = adfsConfig.setUp(); **<<<<------- THROWS SOME EXPECTION IF SOME THINGS GOES WRONG**
}
} catch (Exception e1) {
e1.printStackTrace();
}
@AfterTest(groups = { "group1" })
public void cleanUp() throws Exception {
try {
System.out.println("*** IN CLEANUP ***");
}
} catch (Exception e) {
e.printStackTrace();*
}
@Parameters({ "com.acc.Test1.callSSO" })
@Test(groups = { "group1" })
public void callSSO(String testName1) throws Exception {
String testName = testData.get(0).toString();
String initOp = testData.get(1).toString();
String userState = testData.get(2).toString();
String authScheme = testData.get(3).toString();
String user = testData.get(4).toString();
System.out.println("------------>> TestName is " + testName);
System.out.println("------------>> UserState is " + userState);
System.out.println("------------>> User is " + user);
if(user.equals("Fred")
assert true;
else
assert false;
}
}
使用されている TestNG jar: testng-5.10-jdk15.jar