我使用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/

10-11 22:22