使用组时无法识别 TestNG 参数

Posted

技术标签:

【中文标题】使用组时无法识别 TestNG 参数【英文标题】:TestNG Parameters are not recognized when using Groups 【发布时间】:2021-04-27 20:36:39 【问题描述】:

使用 testNG xml 运行测试套件时,测试将正常运行,并且 xml 文件中的所有参数都按预期使用。当我将分组添加到我的@Test 方法并添加组 xml 时,我得到一个失败的:java.lang.nullpointerException。 @Test 在运行类或从 XML 时完美运行。

之前:一切正常

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
  
<suite name="Suite1" verbose="1" >
    <parameter name="User" value="Admin"/>
    <parameter name="Password" value="something"/>
  <test name="ExampleTest" >
    <classes>
      <class name="test1"/>
      <class name="test2"/>
    </classes>
  </test>
</suite>

之后 - @BeforeClass 因 Null.PointerException 而失败

<suite name="Suite1" verbose="1" >
    <parameter name="User" value="Admin"/>
    <parameter name="Password" value="something"/>
  <test name="ExampleTest" >
          <groups>
              <run>
                  <include name = "setup"/>
                  <exclude name = "functional"/>
                  <include name = "regression"/>
              </run>
          </groups>

    <classes>
      <class name="test1"/>
      <class name="test2"/>
    </classes>
  </test>
</suite>

注意:我已经用 @BeforeClass(groups = "setup") 标记了 @BeforeClass,但它不起作用。

【问题讨论】:

【参考方案1】:

所有,答案是这样的。我的测试类扩展了一个使用@BeforeSuite 和@AfterSuite 的类。当我将 alwaysRun = true 添加到 @BeforeSuite/@AfterSuite 时,它​​按预期工作。

【讨论】:

以上是关于使用组时无法识别 TestNG 参数的主要内容,如果未能解决你的问题,请参考以下文章

Bash 脚本无法识别命令行参数? [复制]

使用 dplyr 在自定义函数中无法识别默认参数

JPA/Hibernate 本机查询无法识别参数

使用 SWIG 围绕 C++ 的 Python 包装器。参数类型无法识别

appdesign中的函数或变量参数无法识别

为啥直接调用 Python 脚本时 argparse 无法识别参数?