但是在testng.xml中没有标记为@Optional

时间:2016-08-04 16:26:58

标签: selenium testng

我正在尝试使用TestNG运行以下代码,

package Framework;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;

public class XMLtestng {
    WebDriver d;




  @Test
  @Parameters({"fname"})
  public void reg(String fname) throws InterruptedException {
      d.findElement(By.linkText("REGISTER")).click();
      d.findElement(By.name("firstName")).sendKeys(fname);
      d.findElement(By.name("register")).click();
      Thread.sleep(3000);
  }

  @BeforeClass
  public void beforeClass() {
      d = new FirefoxDriver();
      d.manage().window().maximize();
      d.get("http://newtours.demoaut.com/");
  }

  @AfterClass
  public void afterClass() {
      d.close();
  }

}

这是相应的xml文件,

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">



  <test name="reg">
  <Parameter name="fname" value="Rachel"/>


    <classes>
      <class name="Framework.XMLtestng"/>
    </classes>
  </test> <!-- Test -->

</suite> <!-- Suite -->

当我将我的xml文件作为TestNg套件运行时,只打开并关闭网站的网址。未执行要执行的操作(键入用于注册的名字)。这是在控制台中打印的消息,

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

任何人都可以帮我解决这个问题。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您的测试被跳过,因为您没有提供预期参数,并且未将其声明为@Optionnal

问题是您使用的是<Parameter...而不是<parameter...

使用DTD验证您的文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">