可用两种方式调用TestNG:
本节仅解释如何从命令行调用TestNG,如果你对其它调用方式感兴趣,请点击以上相应链接。
假设TestNG已经加入了在你的类路径中,可以用下面的简单方式调用TestNG:
java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...] |
必须指定最少一个XML文件,描述你想要运行的TestNG 测试套件。另外,可以使用下面的命令行开关:
命令行参数 | ||
选项 | 参数 | 说明 |
-d | 目录 | 生成测试报告的目录(默认为test-output)。 |
-sourcedir | 用分号分隔的目录列表 | 带有javadoc注解的测试源文件目录,这个选项只在使用javadoc类型的注解时才有必要。(例如:“src/test”或 “src/test/org/testng/eclipse-plugin; src/test/org/testng/testng”) |
-testclass | 用逗号分隔的类列表,可以在类路径中找到 | 用逗号分隔的类文件列表(例如: “org.foo.Test1,org.foo.test2”) |
-groups | 用逗号分隔的组列表 | 希望运行的组列表(例如:“windows,linux,regression”) |
-excludegroups | 用逗号分隔的组列表 | 不希望运行的组列表 |
-testrunfactory | 在类路径中能够找到的Java类 | 指定测试的runner,这个类需要实现 |
-listener | 用逗号分隔的Java类,可以在类路径中找到 | 指定测试的监听器,这个类需要实现 |
-parallel | methods|tests | 如果指定, 设置运行测试时如何使用并行线程的默认机制.如果不设置,默认机制是完全不使用并行线程。本设置可被测试套件定义覆盖。 |
-threadcount | 并行运行测试时默认使用的线程数 | 设置并行运行测试使用的默认最大线程数。仅在选择并行模式时才有效(例如,使用-parallel选项)。本设置可被测试套件定义覆盖。 |
-suitename | 测试套件使用的默认名称 | 指定在命令行上定义的测试套件名称。如果suite.xml文件或源代码指定了不同的测试套件名称,则本选项将被忽略。如果在名称前后加双引号,则可以创建带空格的测试套件名称,如“like this”。 |
-testname | 测试使用的默认名称 | 指定在命令行上定义的测试名称。如果suite.xml文件或源代码指定了不同的测试名称,则本选项将被忽略。如果在名称前后加双引号,则可以创建带空格的测试名称,如“like this”。 |
-reporter | 为自定义报告监听器使用的扩展配置 | 类似-listener选项,除了在reporter实例上允许配置JavaBeans形式的属性。 例如:-reporter com.test.MyReporter: methodFilter=*insert*, enableFiltering=true You can have as many occurences of this option, one for each reporter that needs to be added. |
可以通过不带任何参数调用TestNG来获得本文档。
也可以将命令行开关写到txt文件中,例如:c:/command.txt, 然后告诉TestNG使用这个文件类取回参数:
C:> more c:/command.txt -d test-output testng.xml C:> java org.testng.TestNG @c:/command.txt |
另外,TestNG可以通过Java虚拟机的命令行来传递属性,例如:
java -Dtestng.test.classpath="c:/build;c:/java/classes;" org.testng.TestNG testng.xml |
下面是TestNG能够理解的属性:
系统属性 | ||
属性 | 类型 | 说明 |
testng.test.classpath | 用分号分隔的包含测试类的一系列目录 | 如果设置了本属性,TestNG将使用它代替从类路径中查找测试类。这在XML文件中使用包标签,并且在类路径中有大量的类而大多数类并非测试类的时候很方便。 |
例如:
java org.testng.TestNG -groups windows,linux -testclass org.test.MyTest
|
注意: ant 任务和testng.xml允许使用更多的参数来启动TestNG(包含的方法、指定的参数,等等),因此,当你打算学习TestNG并想要快速运行TestNG时,应该考虑使用命令行。