问题标签 [testng-dataprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3457 浏览

java - TestNG,ITestContext - getIncludedGroups 返回 Null

有几个不同测试组的测试。而且我正在尝试通过在内部使用带有 ITestContext 的@DataProvider 来使用不同的数据集运行它们中的每一个。我得到 NullPointerException。这是我的代码:

0 投票
1 回答
915 浏览

selenium - @Factory 注解的工作原理-TestNG

当我们需要使用 @Factory 时,这个 @Factory 注释是如何工作的

请告诉我以下代码的作用,

0 投票
3 回答
1020 浏览

testng - 如何在 TestNG 开始时获得测试总量(包括考虑数据提供者)?

谁能告诉我如何在 TestNG(套件)开始时获取(预期)所有测试/方法执行的计数?

您可以轻松获得所有测试方法的数量,但这并不计算每个测试方法乘以数据提供者大小的数量(每个方法将被计算一次,即使一个方法通过数据提供者执行 100 次)。

除非有明显的解决方案,例如简单的 API 调用,否则关键似乎是从 @Test 注释中给出的数据提供者名称中找出数据提供者方法,我在这里问过: 如何获取数据提供者方法来自 TestNG 数据提供者的名称?

一旦你知道数据提供者方法是什么,你就可以执行数据提供者,并计算数据集的数量。这看起来效率不高,但我们正在运行的测试不是单元测试,所以我不会太担心两次执行数据提供者(与实际测试运行的时间相比,这将是小菜一碟)。

0 投票
1 回答
2355 浏览

testng - 如何从 TestNG 数据提供者名称中获取数据提供者方法?

有谁知道 TestNG 如何根据为测试方法指定的数据提供者名称确定数据提供者方法是什么?

我找到了这个解决方案: https ://gist.github.com/ae6rt/3805639

但是,它没有考虑到数据提供者可能是:

  • 在完全不同的类中定义,或
  • 在父类中定义,并且
  • 该方法可以是静态的,也可以不是静态的。

我试图自己破解一些东西,但后来我想我不可能是第一个尝试解决问题的人,特别是因为显然 TestNG 必须有一个解决方案。

有谁知道 TestNG 是如何做到的,以及如何访问该业务逻辑?

我正在尝试计算启动时的“总测试计数”,如下所述: 如何在 TestNG 开始时获取测试总数(包括考虑数据提供者)?

0 投票
3 回答
5838 浏览

java - 使用 TestNG DataProvider 跳过某些测试迭代

我正在使用 TestNG DataProvider 读取一个 datapool.xls 文件,该文件包含 1017 个测试用例和一个名为 ReadData 的类中的 214 个列。

然后,我将 214 个字符串参数传递到名为 EnterData 的单独类中的 @Test 注释中。

我在 @Test 中创建了一个 for 循环,只执行某些迭代(比如 1-10)的操作,总共只输入 10 个测试用例就可以工作。我的问题是,在运行结束时,它仍然显示“运行的总测试数:1017”,而不仅仅是因为 for 循环而实际执行任何操作的 10 个。

我意识到为什么它将运行的测试总数显示为整个数据池,因为它在技术上传入并运行了数据池中的所有内容,我只是无法弄清楚如何让它只显示实际运行的测试数量。

基本上,我正在寻找一种将 @Test 注释本身放入 for 循环中的方法,可能吗?...

编辑:

这是我当前在 ReadAutoData 类中读取数据池的代码:

编辑2:

这是迄今为止我在 1017 个测试用例中所处的位置,我现在通过在我的 for 循环开头添加以下内容来显示 1007 个跳过:

但是,它仍然显示 1017 测试运行。

0 投票
0 回答
61 浏览

java - TestNG 类在包中失败自行成功

我的包中有 3 个测试类。第一个配置:

第一个真正的测试类:

有问题的第三个:

基本上我正在检查 url 是否可用于不同的角色。我的问题是:如果我将这些类作为套件或包运行,最后一个类将在 sql 结果集中出现“额外行”(为空)而失败。如果我只运行配置类和最后一个类,它运行时没有错误。还有一个例外(这很奇怪):

运行 TestSuite java.sql.SQLException:在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937) 处的 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998) 结果集结束后。 mysql.jdbc.SQLError.createSQLException(SQLError.java:926) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872) 在 com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:787) 在 com .mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5244) 在 com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5167) 在 com.resources.SQLConForDataProvider.executeQuery(SQLConForDataProvider.java:47) 在 com。 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 处 sun.reflect.NativeMethodAccessorImpl 处的 pageVisibility.PageVisibilityUser.providedData(PageVisibilityUser.java:39)。调用(NativeMethodAccessorImpl.java:57)

0 投票
1 回答
52 浏览

java - testNg 中的依赖性会导致重新运行吗?

例如,我有以下方法并运行整个测试类。

如果是这样,之前的方法会运行多少次?

0 投票
0 回答
244 浏览

java - 并行运行 TestNG 测试

我想并行运行由 TestNG 定义的测试。

我有包含 ID 列表的 @DataProvider 方法

@BeforeClass 方法获取每个 ID,进行一些处理并将结果存储在 Map 中。有一种 @Test 方法使用 Map 中存在的值并执行验证。

我在 xml 中使用了以下语句:

我想并行运行测试,并且计算的 Map 不应该在线程之间共享。这些值应该是特定于线程的。

我应该如何定义这样的变量并将其仅用于该线程?

0 投票
1 回答
386 浏览

selenium - 如何在多个浏览器上使用相同的数据运行测试

我目前正在努力使用相同的数据在多个浏览器上运行测试。我在 xls 文件中有我的数据,并使用数据提供程序将数据提供到我的测试中。但是,当我在多个浏览器上并行运行测试时,两个浏览器都打开,但一个浏览器上没有任何反应,另一个浏览器在文本框中输入重复数据。

0 投票
1 回答
599 浏览

unit-testing - TestNg - 如何水平合并两个数据提供者

如果我们可以合并以下 2 个数据提供者,请告诉我

我想水平合并它们,合并后在合并后的 dataprovider { user , trx, true, "e", "f" } 中需要以下输出