【发布时间】:2022-01-09 20:15:48
【问题描述】:
我的 Java 类没有运行。 我有一个带有 Apache POI 的 @DataProvider 来从 Excel 文件中读取数据并在网页中设置该值。但脚本以 No test found 错误结束。这是我的代码:
package testCases;
import org.openqa.selenium.By;
import org.testng.Reporter;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import base.TestBase;
public class StudentRegistrationForm extends TestBase {
@Test(dataProvider = "getData")
public void addStudent(String fname, String email, String CurrentAddress,String PermAddress) {
System.setProperty("org.uncommons.reportng.escape-output", "false");
//driver.get(confg.getProperty("testsiteurl"));
driver.get(confg.getProperty("url2"));
log.debug("Navigated to : " + confg.getProperty("url2"));
driver.findElement(By.cssSelector(or.getProperty("fullname"))).sendKeys(fname);
driver.findElement(By.cssSelector(or.getProperty("email"))).sendKeys(email);
driver.findElement(By.cssSelector(or.getProperty("currentAddress"))).sendKeys(CurrentAddress);
driver.findElement(By.cssSelector(or.getProperty("permAddress"))).sendKeys(PermAddress);
driver.findElement(By.cssSelector(or.getProperty("submit"))).click();
log.debug("Completed Test 2 - Student Registration Form");
Reporter.log("Completed Test 2 - Student Registration Form");
}
@DataProvider(name="getData")
public Object[][] getData(){
String SheetName = "sheet1";
int rows = excel.getRowCount(SheetName);
int cols = excel.getColumnCount(SheetName);
Object[][] data = new Object[rows - 1][cols];
for (int RowNum = 2; RowNum < rows; RowNum++) {
for (int colNum = 0; colNum < cols; colNum++) {
data[RowNum - 2][colNum] = excel.getCellData(SheetName, colNum, RowNum);
}
}
return data;
}
}
这是我在 Eclipse 控制台中的输出。
================================================ 默认测试 测试运行:0,失败:0,跳过:0
================================================ 默认套件 运行的测试总数:0,通过:0,失败:0,跳过:0
[TestNG] 未找到测试。什么都没有运行 用法:[选项] 要运行的 XML 套件文件 选项: -总是运行监听器 即使对于跳过的方法,也应该运行 MethodInvocation 侦听器 默认值:真 -configfailurepolicy 配置失败策略(跳过或继续) -d 输出目录 -dataproviderthreadcount 运行数据提供者时使用的线程数 -dependencyinjectorfactory TestNG 应该使用的依赖注入器工厂实现。 -排除组 要排除的组名称的逗号分隔列表 -failwheneverythingskipped 如果所有测试都被跳过并且什么都没有,TestNG 是否应该执行失败 跑。 默认值:假 -组 要运行的组名的逗号分隔列表 -junit JUnit 模式 默认值:假 -听者 .class 文件列表或实现 ITestListener 的类名列表 或 ISuiteListener -方法 逗号分隔的测试方法 默认: [] -方法选择器 .class 文件列表或实现 IMethodSelector 的类名列表 -混合 混合模式 - 自动检测当前测试的类型并运行它 合适的跑步者 默认值:假 -objectfactory .class 文件列表或实现的类名列表 ITestRunnerFactory -平行 并行模式(方法、测试或类) 可能的值:[测试、方法、类、实例、无、真、假] -港口 港口 -记者 自定义报告监听器的扩展配置 -spilistenerstoskip 逗号分隔的侦听器的完全限定类名,应该是 跳过通过服务加载程序连接。 默认: -套房名称 测试套件的默认名称,如果未在套件定义文件中指定或 源代码 -suitethreadpoolsize 用于运行套件的线程池大小 默认值:1 -testclass 测试类列表 -testjar 包含测试的 jar 文件 -testname 测试的默认名称,如果未在合适的定义文件或源中指定 代码 -testnames 要运行的测试名称列表 -testrunfactory, -testRunFactory 用于创建测试的工厂 -threadcount 并行运行测试时使用的线程数 -threadpoolfactory 类 TestNG 应该使用的线程池执行器工厂实现。 -使用默认监听器 是否使用默认监听器 默认值:真 -日志,-详细 详细程度 -xmlpathinjar jar 文件中 xml 文件的完整路径(仅在 -testjar 已指定) 默认:testng.xml
【问题讨论】:
-
在没有数据提供者的情况下您的测试是否有效?
-
是的,我可以在没有数据提供者的情况下运行
标签: selenium testng dataprovider testng-dataprovider testng-annotation-test