我正在使用带有Java,TestNG和Maven的Selenium WebDriver自动化应用程序,正在测试的应用程序中存在一个登录页面。
现在,我在自动化登录功能的同时测试了两件事:
现在从以上两种方法中,尽管在编译和运行应用程序时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 -->
答案 0 :(得分:2)
标记为@Test的方法的类型应为void,以便被TestNG识别为测试。
LogiTest()返回一个HomeItem,因此TestNG不能将其识别为可运行的测试。
根据另一种观察,根据定义,每个测试都应该有一个断言,而LogiTest()会丢失一个断言。也许LogiTest应该重写为一种测试,或者只是作为一种测试而取消。