【问题标题】:How do I have TestNG run tests in specific groups (from the command-line)?如何让 TestNG 在特定组中运行测试(从命令行)?
【发布时间】:2010-08-19 21:04:01
【问题描述】:

我正在从命令行调用 TestNG,如下所示:

java org.testng.TestNG -groups "foo" testng.xml

...只运行带有以下注释的测试:

@Test(groups = { "foo" })

...但它正在运行我的所有测试。我需要更改我的 testng.xml 文件吗?

<suite name="BarSuite" verbose="1">
  <test name="AllInPackage">
    <packages>
      <package name="com.example.bar"/>
   </packages>
 </test>
</suite>

TestNG 是否因为 testng.xml 要求运行包中的所有测试而忽略 -groups 命令行参数?如果是这样,我应该如何更改我的 testng.xml 文件?

【问题讨论】:

    标签: java unit-testing command-line testng


    【解决方案1】:

    您完全正确:如果您指定 testng.xml,则它优先于命令行开关。

    只需将以下内容添加到您的 XML 文件中:

      <groups>
        <run>
          <include name="foo"  />
        </run>
      </groups>
    

    【讨论】:

    • 那行得通。但是我不必指定一个 testng.xml 文件吗?我可以修改我的 testng.xml 文件,以便可以使用 -groups 命令行选项(而不是为我要运行的每个组子集使用单独的 testng.xml 文件)吗?
    • 上一个问题没有答案?如何从命令行指定组?
    • 正如我在回答中所说,如果您使用 -groups,则不能使用 testng.xml。这是一个或另一个。
    【解决方案2】:

    Java:
    在特定组中使用 TestNG 运行测试非常容易:
    1) 在命令行中打开您的项目文件夹
    例如:cd C:\FunctionalTests
    2) 按组运行测试

    mvn test -Dgroups=group1,group2
    

    group1, group2 - 测试组的名称
    example in java

    注意!
    mvn test 命令有效,如果您的项目构建经理是 maven.
    如果您不知道您使用的是哪种构建管理器,您可以通过检查(即)项目中是否存在 pom.xml 来验证它

    【讨论】:

    • 虽然欢迎使用此代码 sn-p,并且可能会提供一些帮助,但它会是 howwhygreatly improved if it included an explanation 这解决了问题。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。
    • 感谢您的反馈!完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2015-02-18
    • 2012-08-07
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多