使用@Parameter注释或ITestContext读取TestNG配置文件?

5
我发现在testng xml配置文件中,有两种读取参数的方式:
  1. 使用@Parameter注解,并在注解后定义参数名称。

  2. ITestContext作为测试类、DataProvider或Factory的参数,并使用getCurrentXmlTest()getParameter()来读取参数。

这两种方法是否有任何优劣之分?是否还有其他方法可以实现呢?
1个回答

4
我认为区别在于作用范围。例如,如果我需要在整个测试套件中使用相同的参数(例如环境变量),我会在实现ITestListener或ISuiteListener的监听器中使用它,然后使用ITestContext/Suitecontext将该值应用于所有位于或下的测试。
但是,如果我需要特定测试用例的非常具体的参数,则会在这些特定测试用例上使用@Parameter注释。
另外,@Parameter只能接受简单的值,因此可能存在这样的情况:基于某些参数值,您的测试需要不同的对象(而不是字符串)。在这种情况下,我更喜欢使用数据提供程序,读取参数值(您的第二个选项,尽管我认为测试类的参数是不正确的),创建对象,然后将其馈送到测试中。例如,属性文件的名称可能是一个参数值,根据属性文件中的数据创建对象,并作为不同的测试数据提供给测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接