问题标签 [testng-annotation-test]

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 投票
0 回答
17 浏览

selenium-webdriver - TestNG 没有执行所有测试

我创建了以下方法来执行给定 .class 列表的方法:

从主要方法我通过了一些测试:

问题是一次只执行 5 个测试,如果您尝试在一个会话中执行超过 5 个,它们将被跳过。

编辑:

我已经检查过,如果断言(Test NG 断言)在任何测试中失败,则不会执行剩余的测试。

我怎样才能解决这个问题?

0 投票
0 回答
22 浏览

java - 在不使用 Java 种子的情况下随机化 testng xml 方法

我正在努力寻找 testng xml 测试用例的概念应该随机执行列表而不使用 Java 代码播种概念。

我没有成功找到这样的概念。我观察到有很多使用 Java 种子的示例,您可以按如下方式随机化测试用例执行。这是我目前的做法

但是,我的要求是不生成种子或使用 Java 代码随机化测试执行概念。我想要如下

  • Testng.xml 包含我所有的测试方法或测试用例
  • 一个要配置的参数,用于按顺序或随机运行测试用例。但是在这里我正在寻找 testng 内置功能如果您遇到过这样的解决方案,请告诉我。

谢谢,迪帕克

0 投票
2 回答
54 浏览

java - 不同测试类中使用的常用注解

@BeforeTest我对诸如or之类的注释有疑问@BeforeMethod。是否可以设置全局注释,以便我所有的测试类都将使用它们?我的框架中有超过 20 个测试类和很多测试方法。每个测试类都有类似@BeforeTestor的先决条件@BeforeMethod,但是对于每个测试类,这个先决条件是相同的。所以我认为这可能是一个好主意,编写一个通用的注释方法,可以在每个测试类中使用。

0 投票
0 回答
47 浏览

selenium-webdriver - 通过自动化发送电子邮件时,范围报告没有被覆盖

当前要求是在功能文件的测试执行完成后发送范围报告。

在我的 SequentialRunnerTest 类中,我编写了以下逻辑来发送测试执行报告的电子邮件。

现在,当我多次运行我的顺序运行器文件时,它将始终在我配置的电子邮件上发送范围报告,但如果我将我的功能文件更改为其他文件,它将再次发送以前发送的报告,而不是每次都发送更改后的新报告。

寻找解决方案

  • 需要根据功能文件更改和功能文件执行发送适当的报告。
  • 想要存储功能文件的旧执行报告,并确保它只会在配置的电子邮件上发送最新的执行报告。
  • 如果此报告代码不合适,则建议另一种使用适当代码片段的方式进行实施。
0 投票
2 回答
68 浏览

java - TestNG 以编程方式分配 DataProvider

如果我有一个方法:

如果我有一个方法,我可以在 TestNG 中创建一个监听器或其他东西吗:

那么它会自动注入特定的dataProvider,而不是明确指定它@Test(dataProvider = "webTarget")吗?

0 投票
2 回答
31 浏览

java - 如何通过代码运行指定的testng用例?

如何testNG通过代码运行指定的案例?以下代码:

这将运行两个测试用例。如何专门运行“test2”?

预期输出:

0 投票
2 回答
41 浏览

java - Java TestNG :: 如何为我的测试方法提供参数?

我正在努力理解我老板分配给我的一些 Java TestNG 代码的执行流程。可惜原作者已经不在我公司了,只能靠我自己了。我已经阅读了一些 TestNG 教程(尤其是这个),但仍有疑问。

这是代码的测试类,它从外部文件了解要运行的测试,运行测试,然后关闭所有内容:

测试可能是异步测试或同步测试,因此这些情况由每个子类处理。这是异步的子类:

熟悉 Java TestNG 的编码人员会发现这些注释。

现在,假设我运行代码并且外部文件指定只应运行一个异步测试。在那种情况下,我确定代码的执行顺序是:

但这是我不明白的:信息如何从MyTestDriver.GetSyncConfigData()to传递AsyncAPITest.asyncTestExecution()?如果您查看 method asyncTestExecution(),该方法实际上接受了很多参数:

是什么提供了这些论点?如果我查看 的代码MyTestDriver.GetSyncConfigData(),我不应该在某处看到这样的东西:

我只是不明白如何AsyncAPITest.asyncTestExecution()调用,或者是什么提供了这些论点。我主要是因为我想发送更多参数以供以后修改。提前感谢您的任何建议或意见。

0 投票
1 回答
39 浏览

selenium - TestNg @Dataprovider 在我的 DataDriven 测试中不起作用 - 使用 selenium eclipse

我的 Java 类没有运行。我有一个带有 Apache POI 的 @DataProvider 来从 Excel 文件中读取数据并在网页中设置该值。但脚本以 No test found 错误结束。这是我的代码:

这是我在 Eclipse 控制台中的输出。

================================================= 默认测试测试运行:0,失败:0,跳过:0

================================================= 默认套件总计测试运行:0,通过:0,失败:0,跳过:0

[TestNG] 未找到测试。没有运行 用法:[options] 要运行的 XML 套件文件 选项:-alwaysrunlisteners 即使​​跳过的方法也应该运行 MethodInvocation 侦听器 默认值:true -configfailurepolicy 配置失败策略(跳过或继续) -d 输出目录 -dataproviderthreadcount 要运行的线程数运行数据提供者时使用 -dependencyinjectorfactory TestNG 应该使用的依赖注入器工厂实现。-excludegroups 逗号分隔的要排除的组名列表 -failwheneverythingskipped 如果跳过所有测试并且没有运行任何测试,TestNG 是否应该执行失败。默认值:false -groups 要运行的组名称的逗号分隔列表 -junit JUnit 模式 默认值:false -listener 的列表。实现 ITestListener 或 ISuiteListener 的类文件或类名列表 -methods 以逗号分隔的测试方法 默认值:[] -methodselectors 实现 IMethodSelector 的 .class 文件或类名列表 -mixed 混合模式 - 自动检测当前测试的类型并运行它带有适当的运行器 默认值:false -objectfactory .class 文件列表或实现 ITestRunnerFactory 的类名列表 -parallel 并行模式(方法、测试或类) 可能的值:[测试、方法、类、实例、无、真、假] -端口 自定义报告侦听器的端口 -reporter 扩展配置 -spilistenerstoskip 逗号分隔的侦听器的完全限定类名,应该跳过通过服务加载器连接的侦听器。默认值:-suitename 测试套件的默认名称,如果未在套件定义文件或源代码中指定 -suitethreadpoolsize 用于运行套件的线程池大小 默认值:1 -testclass 测试类列表 -testjar 包含测试的 jar 文件 -testname 测试的默认名称,如果未指定在 suitefinition 文件或源代码中 -testnames 要运行的测试名称列表 -testrunfactory, -testRunFactory 用于创建测试的工厂 -threadcount 并行运行测试时使用的线程数 -threadpoolfactoryclass TestNG 应该使用的线程池执行器工厂实现。-usedefaultlisteners 是否使用默认监听器 默认值:true -log, -verbose 详细级别 -xmlpathinjar jar 文件中 xml 文件的完整路径(仅在指定 -testjar 时有效) 默认值:testng.xml 1 -testclass 测试类列表 -testjar 包含测试的 jar 文件 -testname 测试的默认名称,如果未在 suitefinition 文件或源代码中指定 -testnames 要运行的测试名称列表 -testrunfactory, -testRunFactory 用于运行的工厂create tests -threadcount 并行运行测试时使用的线程数 -threadpoolfactoryclass TestNG 应该使用的线程池执行器工厂实现。-usedefaultlisteners 是否使用默认监听器 默认值:true -log, -verbose 详细级别 -xmlpathinjar jar 文件中 xml 文件的完整路径(仅在指定 -testjar 时有效) 默认值:testng.xml 1 -testclass 测试类列表 -testjar 包含测试的 jar 文件 -testname 测试的默认名称,如果未在 suitefinition 文件或源代码中指定 -testnames 要运行的测试名称列表 -testrunfactory, -testRunFactory 用于运行的工厂create tests -threadcount 并行运行测试时使用的线程数 -threadpoolfactoryclass TestNG 应该使用的线程池执行器工厂实现。-usedefaultlisteners 是否使用默认监听器 默认值:true -log, -verbose 详细级别 -xmlpathinjar jar 文件中 xml 文件的完整路径(仅在指定 -testjar 时有效) 默认值:testng.xml -testRunFactory 用于创建测试的工厂 -threadcount 并行运行测试时使用的线程数 -threadpoolfactoryclass TestNG 应该使用的线程池执行器工厂实现。-usedefaultlisteners 是否使用默认监听器 默认值:true -log, -verbose 详细级别 -xmlpathinjar jar 文件中 xml 文件的完整路径(仅在指定 -testjar 时有效) 默认值:testng.xml -testRunFactory 用于创建测试的工厂 -threadcount 并行运行测试时使用的线程数 -threadpoolfactoryclass TestNG 应该使用的线程池执行器工厂实现。-usedefaultlisteners 是否使用默认监听器 默认值:true -log, -verbose 详细级别 -xmlpathinjar jar 文件中 xml 文件的完整路径(仅在指定 -testjar 时有效) 默认值:testng.xml

0 投票
0 回答
21 浏览

java - 为什么 parallel="instances" 在不同线程中的同一类实例中运行测试

为什么下面的代码在不同的线程中运行测试?测试类:

testng.xml:

输出:

在我给的套房里parallel="instances"counter=1表明这个测试类只有一个实例。那么为什么测试在不同的线程中执行parallel="instances"呢?

0 投票
2 回答
54 浏览

java - 在 TestNG 中使用 IMethodInterceptor 作为侦听器时,仅执行最后一个 @Test

我正在尝试使用@Factory创建一个类的多个实例并按照我们使用IMethodInterceptor监听器传递的相同顺序打印值:

如果我有 5@Test种方法来打印类中的值,它只考虑最后一个 @Test 方法并打印值。我究竟做错了什么?。即getValue1, getValue2, getValue3, getValue4没有运行。

尝试使用prioritydependsOnMethods。下面提到的代码:

输出按我们创建实例的顺序排列,但仅从 last 开始@Test

testng.xml: