当前位置: 首页 > 知识库问答 >
问题:

testng.xml报告没有执行测试套件中的所有测试用例

翟冷勋
2023-03-14

我试图用TestNG.xml运行我的TestNG套件。我的套件中总共有四个类,但我只能用所有方法一次运行两个类。假设我在每个类中有3个方法,那么在TestNG套件中,如果我只添加两个类,TestNG.xml文件将用6个方法运行我的两个测试。现在,如果我尝试在testng.xml文件中添加第三个类,它将只运行每个类的第一个方法。这意味着现在它只运行3个方法(每个类一个)。我在我的项目下创建了一个源文件夹,然后在这个源文件夹中创建了这个testng.xml文件。请让我知道我做错了什么好吗。下面是我的testng.xml文件和测试用例。

testng.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="MurcuryTour AUtomation suite"> 
<test name="MurcuryTour">
 <classes>
        <class name="murcuryTourPagesTests.LoginPageTest"></class>
        <class name="murcuryTourPagesTests.FlightsPageTest"></class>
        <class name="murcuryTourPagesTests.HomePageTest"></class>

</classes>
</test>
</suite>

共有1个答案

许涵容
2023-03-14
Here is my all test classes that I am trying to run in test suite.
package murcuryTourPagesTests;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.MurcuryTour.qa.base.TestBase;
import com.MurcuryTour.qa.pages.FlightsPage;
import com.MurcuryTour.qa.pages.LoginPage;

public class LoginPageTest extends TestBase{
    LoginPage loginpage;
    FlightsPage flightspage;

    public LoginPageTest() {
        super();
    }

    @BeforeClass
        public void setup() {
        initialization();
        loginpage = new LoginPage();
        flightspage = new FlightsPage();
    }

    @Test(priority=1)
        public void titleVerification() {
        String title =loginpage.validatePageTitle();
        Assert.assertEquals(title,"Sign-on: Mercury Tours");
    }

    @Test(priority=2)
    public void login() {
        flightspage =loginpage.login(prop.getProperty       ("username"),prop.getProperty("password"));

    }

    @AfterClass
    public void tearDown() {
    driver.quit();
    }

 }


    -----------------------------------------------------------
2nd class:

package murcuryTourPagesTests;

import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import com.MurcuryTour.qa.base.TestBase;
import com.MurcuryTour.qa.pages.HomePage;
import com.MurcuryTour.qa.pages.LoginPage;
import com.MurcuryTour.qa.pages.RegistrationPage;

public class HomePageTest extends TestBase {
    LoginPage loginpage;
    HomePage homepage;
    RegistrationPage registrationPage;

    public HomePageTest() {
        super();
    }

    @BeforeTest
    public void setup() {
    initialization();
    loginpage = new LoginPage();
    loginpage.login(prop.getProperty("username"),prop.getProperty("password"));
    homepage = new HomePage();
    registrationPage = new RegistrationPage();
    }

    @Test(priority = 1)
    public void click_On_Home_Tab() {
    homepage.Click_On_Home_Tab();
      }

    @Test(priority = 2)
    public void home_Page_Title_Verification() {
    String title = homepage.Verify_HomePage_Title();
    Assert.assertEquals(title, "Welcome: Mercury Tours");

    }

    @AfterSuite

    public void tearDown() {
    driver.close();
    }

    }

---------------------------------------------------------------------

3rd class:

package murcuryTourPagesTests;

import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.MurcuryTour.qa.base.TestBase;
import com.MurcuryTour.qa.pages.FlightsPage;
import com.MurcuryTour.qa.pages.HomePage;
import com.MurcuryTour.qa.pages.LoginPage;

public class FlightsPageTest extends TestBase{

    LoginPage loginpage;
    FlightsPage flightspage;
    HomePage homepage;

    public FlightsPageTest() {
        super();
    }


    @BeforeClass
    public void setup() {
    initialization();
    loginpage= new LoginPage();
    loginpage.login(prop.getProperty("username"),prop.getProperty   ("password"));
    flightspage= new FlightsPage();
    homepage= new HomePage();
    }

    @Test(priority=1)
    public void verifyFlightsPageTitle() {

    String title =flightspage.varifyFlightsPageTitle();
    Assert.assertEquals(title,"Find a Flight: Mercury Tours:");

    }

    @Test(priority=2)
    public void move_To_Find_A_FlightPage() {

    flightspage.clickOnFindFlights();   

    }

    @Test(priority=3)
    public void move_To_Reservation_Page(){
        flightspage.clickOnreserveFlights();

    }

    @Test(priority=4)
    public void enter_User_Inofrmation() {
        flightspage.enterUserInformation();
    }

    @Test(priority=5)
    public void back_To_Home_Page(){
        homepage=flightspage.backToHomePage();
    }

    @AfterClass
    public void tearDown() {
    driver.quit();
    }


}
 类似资料:
  • 执行testng xml时,它在套件中只执行1个测试 基本测试- 登录测试-

  • 我已经在Eclipse中创建了用于执行Selenium测试的Maven项目。我编写了一个TestSuite作为testng.xml。我喜欢从pom.xml运行这个testng.xml。 当我运行pom.xml时(右键单击pom.xml->Maven test),构建是成功的,但没有运行任何测试。测试结果如下: 结果:运行的测试:0次,失败:0次,错误:0次,跳过:0次 我的testng.xml:

  • 有4个类包含测试< code>TestClass1、TestClasss2、TestClass3、TestClass4。您需要创建2个测试套件,每个套件将包含2个类,并使用< code>Maven surefire插件并行运行它们。 我创建了两个包含以下内容的xml文件: 和 也添加到: 接下来,我用命令< code>mvn clean test运行项目,项目将要运行,但是测试没有开始。我哪里错了

  • 22.13.7.测试报告 测试任务默认生成以下结果. 一份HTML测试报告 一个与Ant的JUnit测试报告任务兼容的XML.这个格式与许多其他服务兼容,如CI serves 结果是有效的二进制,测试任务会从这些二进制结果生成其他结果。 有一个独立的TestReport任务类型会根据一些Test任务实例生成的二进制源码生成一个HTML报告.使用这种测试类型,需要定义一个destinationDir

  • 当运行单元测试的时候,Gradle 会输出一份 HTML 格式的报告以方便查看结果。Android plugin 则将所有连接设备的测试报告都合并到一个 HTML 格式的报告文件中。所有测试结果都以 XML 文件形式保存到 build/reports/androidTests/ 中(类似于 JUnit 的运行结果保存在 build/reports/tests 中)。可以自定义路径: android

  • 5.4 测试报告 当运行单元测试的时候,Gradle 会生成一份 HTML 报告以便于查看测试结果。 Android plugins 在这个基础上扩展了 HTML 报告,以合并所有已连接设备上的测试结果。 5.4.1 单工程报告 在运行测试的时候工程会自动的生成报告,默认位置是: build/reports/androidTests 这和 jUnit 报告的位置 build/reports/tes