0

10 を超えるクラスを含む testNG スイートがあります。testNG.xml をスイートとして起動すると、ブラウザーを開いてすべてのクラスで閉じるために使用した 2 番目のクラスに移動する前に、ブラウザー (ff) が閉じません。ブラウザが閉じているクラスを1つだけ指定してテストしました。@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) を実行します。ブラウザーが閉じない理由は単純です。1 つのドライバー インスタンスを使用してブラウザーを起動しているためです。したがって、実行が終了すると、次のクラスの実行が開始されますが、まだ終了していません。@AfterClass または @AfterMethod を使用してみてください。@AfterClass をお勧めします。ドライバーを開始しているので @BeforeClass

それが役立つことを願っています。

于 2016-11-24T13:42:14.780 に答える