2016-11-24 28 views
0

我有一個包含超過10個類的testNG套件。當我將testNG.xml作爲一個套件啓動時,瀏覽器(ff)在進入第二課之前不會關閉,因爲我曾經打開瀏覽器並在每個課程中關閉瀏覽器。我已經測試過,只給出一個瀏覽器關閉的類。請檢查下面的代碼@AfterTest在eclipse中運行帶有多個類的testNG.xml時,WebDriver窗口未關閉

@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 --> 
+0

你能看到什麼錯誤? –

回答

1

使用@AfterClass註釋是這樣的:

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

做那@AfterClass和(alwaysRun = TRUE)。您的瀏覽器可能沒有關閉的原因很簡單,您正在使用一個驅動程序實例來啓動瀏覽器。所以一旦你的執行結束,下一個課程將開始執行,但你還沒有結束。所以請嘗試使用@AfterClass或@AfterMethod。我建議@AfterClass作爲,你正在啓動你的驅動程序@BeforeClass

希望有所幫助。

+0

不,它沒有關閉。我已經從BeforeClass和AfterClass中刪除了alwaysRun = true --------------- @ BeforeClass public void setUp()拋出異常{ driver = new FirefoxDriver(); ------ ------------- @ AfterClass public void tearDown()拋出異常{driver_quit(); String verificationErrorString = verificationErrors.toString(); (!「」。equals(verificationErrorString)){ fail(verificationErrorString); } } –

+0

您的測試失敗了嗎?執行測試時會出現什麼錯誤? –

+0

沒有失敗,瀏覽器保持打開所有運行的類,並在運行幾個類後,瀏覽器被擊中!如果我在單個testng.xml中有20個腳本/類,那麼在運行10個類之後,瀏覽器不會關閉,例如,由於firefox的負載,它會被觸發! –