Java 无法在<;之间传递数据;测试>;testng套件中的标记
我正在处理一个testngxml文件,就像本文底部复制的那个文件一样。为了通过浏览器参数化测试,我将每个类分解为一个单独的节点 作为与报表软件集成的一部分,我们将每个测试方法提供的一段数据存储在由ITestContext对象处理的arraylist中。在@afterSuite方法中,该对象将该信息上传到我们的报告软件 在其他套件中,如果类都存在于同一个节点中,则可以正常工作。但是,在这个套件中,我们只获取最后一个节点的数据。它似乎正在覆盖前三个,方法是创建一个新的ITestContext实例。不幸的是,我无法将这个套件整合成一个单独的套件,因为我们将失去参数化测试的能力 我需要知道是否有一种可接受的方式在不同节点中包含的测试方法之间传递信息。我尝试在公共父级中使用静态变量(未成功),但在testNG文档中找不到任何关于设置全局变量的内容Java 无法在<;之间传递数据;测试>;testng套件中的标记,java,testng,listener,Java,Testng,Listener,我正在处理一个testngxml文件,就像本文底部复制的那个文件一样。为了通过浏览器参数化测试,我将每个类分解为一个单独的节点 作为与报表软件集成的一部分,我们将每个测试方法提供的一段数据存储在由ITestContext对象处理的arraylist中。在@afterSuite方法中,该对象将该信息上传到我们的报告软件 在其他套件中,如果类都存在于同一个节点中,则可以正常工作。但是,在这个套件中,我们只获取最后一个节点的数据。它似乎正在覆盖前三个,方法是创建一个新的ITestContext实例。不
<suite name="UL" parallel="tests" thread-count="1" verbose="10">
<parameter name="env" value="jobcaseStaging6"/>
<parameter name="recordTests" value="1"/>
<listeners>
</listeners>
<test name="UL Tests firefox">
<classes>
<class name="tests.selenium_tests.ULTests">
<parameter name="browser" value="firefox"/>
</class>
</classes>
</test>
<test name="UL Tests chrome">
<classes>
<class name="tests.selenium_tests.ULTests">
<parameter name="browser" value="chrome"/>
</class>
</classes>
</test>
<test name="UL Tests safari">
<classes>
<class name="tests.selenium_tests.ULTests">
<parameter name="browser" value="bs_safari"/>
</class>
</classes>
</test>
<test name="UL Tests edge">
<classes>
<class name="tests.selenium_tests.ULTests">
<parameter name="browser" value="bs_edge"/>
</class>
</classes>
</test>
</suite>
因此这里基本上有两种场景,对于每种场景,TestNG都提供了一种适当的数据共享方式:
@test
方法的类)都位于相同的
标记中,并且希望在它们之间共享数据李>
在这种情况下,您应该使用ITestContext
对象,并通过ITestContext
对象的属性共享数据
标记中,并希望在它们之间共享数据ISuite
对象,并通过ITestContext
对象的属性共享数据
基本上:
表示ITestContext
标记和
表示一个ISuite
标记