我使用testng
进行测试。我有几个测试套件(Suite1.xml,Suite2.xml和Suite3.xml),它们组合在一个套件中(MasterSuite.xml)。除此之外,我还有类TestBase.java
,在其中配置诸如@BeforeTest
,@BeforeMethod
,@BeforeSuite
,@AfterSuite
等的方法。
运行@AfterSuite
方法将关闭驱动程序(driver.quit()
)。
我想要的是:运行MasterSuite
,它将依次运行我的所有3个套件。
问题:执行第一个套件(Suite1
)后,驱动程序关闭,因此Suite2
无法运行。
我该如何解决这个问题?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="MasterSuite">
<suite-files>
<suite-file path="Suite1.xml" />
<suite-file path="Suite2.xml"/>
<suite-file path="Suite3.xml"/>
</suite-files>
</suite>
最佳答案
如果要一个接一个地运行套件而不是并行运行它们,则足以使用@BeforeSuite方法启动驱动程序。
这样,您的所有套件都将具有单独的WebDriver实例初始化。
关于java - Testng有多个套件。 @AfterSuite方法在第一个套件和第二个套件无法运行后关闭驱动程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31320851/