17

即将用 Maven+TestNG+Selenium 实现一个测试框架。

你如何声明一个告诉 TestNG 运行所有测试的 suite.xml?我已经尝试了所有这些都无济于事:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Toplevel TestNG configuration" verbose="10">
  <test name="all">
    <classes>
      <class name="*" />
    </classes>
  </test>
</suite>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Toplevel TestNG configuration" verbose="10">
  <test name="all">
    <groups>
      <run>
        <include name="*" />
        <exclude name="disabled" />
      </run>
    </groups>
  </test>
</suite>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Toplevel TestNG configuration" verbose="10">
  <test name="all">
    <packages>
      <package name="*" />
    </packages>
  </test>
</suite>

我需要使用不同的参数指定不同的套件配置,但都运行所有测试。我可以挖掘的每个示例都明确列出了对我来说意义不大的每个类或包。

4

5 回答 5

22

据我所知,应该使用 .* 来匹配它们。

于 2013-11-04T07:28:28.813 回答
10

testng.xml您可以通过将文件声明为来在包中添加所有测试类

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="sampleTest" parallel="false">

    <test name="sample-Test" preserve-order="true" verbose="2">
        <packages>
            <package name="org.sample.something.*"/>
        </packages>
    </test>

</suite>

没有地方可以通过测试作为搜索选项。如果你想做类似的事情,你必须在代码中实现套件并在那里实现搜索场景。

于 2012-09-18T08:42:51.103 回答
4

假设你有一个三级包,你的测试类在com.abc.xyz包下。

<package name="*" /> </packages> , doesn't work. 
<package name="com.*.*" />  doesn't work. 
<package name="com.abc.*" />  does work.
于 2015-08-06T14:39:40.230 回答
1

AFAIK testng 没有您正在寻找的正则表达式选项。

但是,我认为你可以通过两种方式得到你想要的:

  1. 如果您正在使用 Testng 插件在 Eclipse 上工作。您只需选择定义了所有包的测试文件夹即可。使用 maven,它主要是您的 src/test/java 文件夹,右键单击并说 run as testng。这样做会创建一个临时的 customsuite.xml,其中列出了您的所有类。您可以将 xml 保存为默认 xml。

  2. 带有 maven 的 surefire 插件可以选择指定包含,然后指定模式。您可以尝试将其设置为 * / .java 我认为它会拾取所有测试用例(虽然没有尝试过)。然后,您可以将测试调用为 mvn test。

于 2012-09-18T10:48:59.467 回答
0

下面的作品来自 TestNg 的 3 级 Pkg

<package name="orgPkg.namePkg.appnamePkg.applicationPkg.functionalityPkg"/></packages>
于 2019-09-24T16:50:17.317 回答