3
使用組時@AfterMethod調用所以我有一個具有下面的代碼測試:TestNG中忽略的testng.xml
public class ViewLineList
{
Browser browser = new Browser();
WebDriver driver;
public void viewLineList(String driverName)
{
driver = browser.getDriver(driverName);
//Navigate to System Facing
driver.manage().window().maximize();
driver.navigate().to("URL GOES HERE");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//Verify Line List is present
WebElement lineList = driver.findElement(By.xpath("/html/body/div/div/div/div/form/div/div[2]/div/div[2]/div"));
Assert.assertNotNull(lineList, "The Line List is empty");
Assert.assertEquals(true, lineList.isDisplayed(), "The line list is not displayed");
//Verify Columns are present
WebElement poEligibleColumn = driver.findElement(By.linkText("PO Eligible"));
WebElement patientColumn = driver.findElement(By.linkText("Patient/SSN"));
WebElement wardColumn = driver.findElement(By.linkText("Ward/Room"));
WebElement drugColumn = driver.findElement(By.linkText("Drug"));
WebElement dosageColumn = driver.findElement(By.linkText("Dosage"));
WebElement startDateColumn = driver.findElement(By.linkText("Start Date"));
WebElement nextDoseColumn = driver.findElement(By.linkText("Next Dose"));
WebElement lastReviewDateColumn = driver.findElement(By.linkText("Last Review Date"));
WebElement reviewerColumn = driver.findElement(By.linkText("Reviewer"));
WebElement toolsColumn = driver.findElement(By.linkText("Tools"));
Assert.assertEquals(true, poEligibleColumn.isDisplayed(), "The PO Eligible column is not present");
Assert.assertEquals(true, patientColumn.isDisplayed(), "The Patient column is not present");
Assert.assertEquals(true, wardColumn.isDisplayed(), "The Ward column is not present");
Assert.assertEquals(true, drugColumn.isDisplayed(), "The Drug column is not present");
Assert.assertEquals(true, dosageColumn.isDisplayed(), "The Dosage column is not present");
Assert.assertEquals(true, startDateColumn.isDisplayed(), "The Start Date column is not present");
Assert.assertEquals(true, nextDoseColumn.isDisplayed(), "The Next Dose column is not present");
Assert.assertEquals(true, lastReviewDateColumn.isDisplayed(), "The Last Review Date column is not present");
Assert.assertEquals(true, reviewerColumn.isDisplayed(), "The Reviewer column is not present");
Assert.assertEquals(true, toolsColumn.isDisplayed(), "The Tools column is not present");
}
//Tests - Run these
@Test(groups = {"functionalTests.FF"})
public void test_ViewLineList_FF()
{
viewLineList("firefox");
}
@Test(groups = {"functionalTests.IE"})
public void test_ViewLineList_IE()
{
viewLineList("ie");
}
@AfterMethod
public void tearDown()
{
driver.quit();
}
}
當我從類運行測試上面的@AfterMethod
工作正常。當我從我的testng.xml中調用該類時,問題就出現了。以下哪個是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<test name="Test" preserve-order="true">
<groups>
<run>
<include name="functionalTests.FF"/>
<exclude name="functionalTests.IE"/>
<exclude name="functionalTests.iOS"/>
</run>
</groups>
<classes>
<class name="ui_Tests.ViewLineList"/>
<!-- <class name="ui_Tests.ViewLineListResolutions"/>
<class name="ui_Tests.InteractWithLineList"/>
<class name="ui_Tests.POEligibleTests"/>
<class name="ui_Tests.DisableColumns"/>
<class name="ui_Tests.ExpandCollapseBars"/>
<class name="ui_Tests.BarGraphs"/> -->
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
如果我運行從XML文件中,則@AfterMethod
被忽略的測試。我也試過@AfterTest
和@AfterClass
,當測試失敗時它們似乎都被忽略了。
他們應該運行不管什麼..你確定他們沒有執行?你有沒有嘗試添加一些日誌記錄,以確保? –
@PeterLiljenberg那麼'@ AfterMethod'等人應該運行,不管通過/失敗的條件,這意味着Web瀏覽器應該關閉。不是這樣。 – DarthOpto