对于testNG中的所有测试,@ Test注释首先运行?

问题描述 投票:0回答:1

我的testng.xml下有几个测试用例。我的testng.xml如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="AutomationPractice" parallel="none">
  <test name="Logins">
    <classes>
      <class name="newMavenProject.Gmail_Login_Firefox"/>
      <class name="newMavenProject.Facebook_Login_Chrome"/>
    </classes>
  </test> <!-- Logins -->
</suite> <!-- AutomationPractice -->

在我的两个测试中,我都有@BeforeTest,@ Test和@AfterTest注释。当我将testng.xml作为testNGSuite运行时。我看到浏览器同时打开两个测试(@BeforeTest),然后Gmail_Login测试将运行@Test注释。然后Facebook_Login_Chrome将运行其@Test注释。然后我的Gmail_Login测试将运行@AfterTest注释(关闭浏览器),然后我的Facebook_Login_Chrome测试将运行@AfterTest注释(关闭浏览器)。

如何才能使我的Gmail_Login测试完全运行(@BeforeTest,@ Test,@ AfterTest),然后我的Facebook_Login_Chrome测试完全运行(@BeforeTest,@ Test,@ AfterTest)。

非常感谢!!

selenium-webdriver automation testng
1个回答
0
投票

当执行<test>标记时,它会运行所有方法,从所有包含的类中注释@BeforeTest

看起来好像需要使用@BeforeClass@AfterClass注释来注释设置和拆除方法。

TestNG documentation说:

@BeforeTest:在运行属于<test>标记内的类的任何测试方法之前,将运行带注释的方法。

@AfterTest:在所有属于<test>标记内的类的测试方法运行之后,将运行带注释的方法。

@BeforeClass:在调用当前类的第一个测试方法之前,将运行带注释的方法。

@AfterClass:在运行当前类中的所有测试方法之后,将运行带注释的方法。

© www.soinside.com 2019 - 2024. All rights reserved.