0

我有一个包含 10 多个课程的 testNG 套件。当我将 testNG.xml 作为套件启动时,浏览器(ff)在进入第二类之前没有关闭,我曾经在第二类中打开浏览器并在每个类中关闭它。我已经测试过它只给一个浏览器关闭的类。请检查以下代码以获取@AfterTest

@BeforeClass(alwaysRun = true)
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://www.example.com";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test(priority=0)
public void testActivityMasterDBCheck() throws Exception {
--------------------
--------------------
@AfterTest
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) 
{
fail(verificationErrorString);
}
}

and XML is 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Test">
<classes>
  <class name="Admin.ManagePackagesDBCheck"/>
  <class name="Reports.ActiveStatusReportDBCheck"/>
  ----------
 </classes>
 </test> <!-- Test -->
 </suite> <!-- Suite -->
4

2 回答 2

1

像这样使用@AfterClass 注释:

@AfterClass
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) 
{
fail(verificationErrorString);
}
}
于 2016-11-24T13:33:35.530 回答
0

这样做@AfterClass 和(alwaysRun = true)。您的浏览器可能无法关闭的原因很简单,您正在使用一个驱动程序实例来启动浏览器。因此,一旦您的执行结束,下一个课程将开始执行,但您的还没有结束。所以尝试使用@AfterClass 或@AfterMethod。我建议@AfterClass,因为你正在启动你的驱动程序@BeforeClass

希望有帮助。

于 2016-11-24T13:42:14.780 回答