У меня есть следующий testng.xml
<test name="CommonReportingTests" preserve-order="true">
<classes>
<class name="com.blah.ReportRunTests">
<methods>
<include name="login" />
<include name="checkHomeTab" />
<include name="checkReportsTab" />
<include name="checkReportsExist" />
<include name="reportsCleanup" />
</methods>
</class>
<class name="com.blah.RestoreActivityTests">
<methods>
<include name="login" />
<include name="checkHomeTab" />
<include name="checkReportsTab" />
<include name="checkReportsExist" />
<include name="expandReportsTabAndClickRestoreActivity" />
</methods>
</class>
</classes>
Мой класс TestBase имеет это:
@Parameters({ "webconsoleStartupURL" })
@BeforeSuite(description = "Perform class setup tasks")
public void beforeClass(final String webconsoleStartupURL)
throws ClassNotFoundException, InstantiationException,
IllegalAccessException {
sm = new SeleniumMgr(webconsoleStartupURL);
sm.startSelenium();
}
@AfterSuite(description = "Perform class teardown tasks")
public void afterClass() {
sm.stopSelenium();
}
Когда я выполняю тесты, кажется, что запускается только второй тест в xml, т.е. RestoreActivityTests, а затем он выходит из пакета. Первый класс не выполнен, и я вижу NullPointerException для каждого из тестов в первом.
Я хочу только один экземпляр браузера и выполнить несколько тестов. Документ testng предполагает, что версия xml, которую я использовал выше, на самом деле верна. Что здесь не так?