TestNG不会执行该类中存在的所有方法

时间:2019-01-23 14:16:53

标签: selenium testng

我正在使用带有Java,TestNG和Maven的Selenium WebDriver自动化应用程序,正在测试的应用程序中存在一个登录页面。

现在,我在自动化登录功能的同时测试了两件事:

  1. 登录页面标题
  2. 登录页面功能

现在从以上两种方法中,尽管在编译和运行应用程序时TestNG中没有错误,但只有第一种方法可以工作(登录页面标题),第二种方法没有执行(登录页面功能)。

public class LoginTest extends TestBase {

    Login loginpage;
    HomePage homePage;

    public LoginTest() {
        super(); // method to load the System Property
    }

    @BeforeMethod
    public void setUp() throws IOException {
        initialization(); // method to initiate and launch the browser
        loginpage = new Login();
    }

    @Test(priority = 1)
    public HomePage LogiTest() throws IOException {
        return homePage = loginpage.login(prop.getProperty("username"), prop.getProperty("password"));
    }

    @Test(priority = 2)
    public void ValidateLoginPageTitleTest() {
        String title = loginpage.ValidateLoginPageTitle();
        Assert.assertEquals("Application", title);
        System.out.println(title);
    }

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

现在从以上两种测试方法中,运行TestNG Suite时仅执行ValidateLoginPageTitleTest

TestNG未选择第二种方法LogiTest

现在,运行测试后,TestNG在控制台上显示以下消息。

Total tests run: 1, Failures: 0, Skips: 0
===============================================

PFB TestNG.xml供参考

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="automation testing scn">

    <listeners>
        <listener
            class-name="PackageName.ExtentReportListener"></listener>
    </listeners>

    <test thread-count="5" name="Test">
        <classes>
            <class name="packageName.LoginTest" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Suite -->

1 个答案:

答案 0 :(得分:2)

标记为@Test的方法的类型应为void,以便被TestNG识别为测试。

LogiTest()返回一个HomeItem,因此TestNG不能将其识别为可运行的测试。

根据另一种观察,根据定义,每个测试都应该有一个断言,而LogiTest()会丢失一个断言。也许LogiTest应该重写为一种测试,或者只是作为一种测试而取消。