【译】TestNG官方文档中文版(04)—— 运行TestNG

4 - 运行

TestNG可以使用多种方式调用:

  • 命令行
  • ant
  • Eclipse
  • IntelliJ's IDEA

本节将只介绍如何从命令行运行TestNG。如果您对其他方式感兴趣,那么就点击上面的链接查看更多信息。

假设TestNG已经在你的类路径中,最简单的调用方式如下:

java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...]

你至少要指定一个XML文件,它描述了你要运行的TestNG suite。此外,还有如下命令行参数:

命令行参数
选项 参数 说明
-d 目录 报告会生成的目录 (默认是test-output).
-excludegroups 逗号分隔的组列表 要在当前运行中被排除的组列表
-groups 逗号分隔的组列表 想要运行的组(e.g. "windows,linux,regression").
-listener 逗号分隔的Java类列表,它们都可以在你的类路径中找到 让你指定你自己的监听器。这些类需要实现org.testng.ITestListener
-parallel 方法 | 测试 如果指定了,那么在运行测试的时候,所使用的默认的机制就会决定如何去使用并行 | 线程。反之则不会。 这是可以在suite定义中被覆盖的
-reporter 自定义报告监听器的扩展配置 类似于 -listener 选项,允许在报告器实例中配置JavaBean的样式属性。例如:
-reporter com.test.MyReporter:methodFilter=*insert*,enableFiltering=true
这个选项不限次数,根据需要一样一个。
-sourcedir 分号间隔的目录列表 使用了JavaDoc类型的annotation的源码所在的目录。这个选项只有你在使用JavaDoc类型的注解时才会有用。(e.g. "src/test" or "src/test/org/testng/eclipse-plugin;src/test/org/testng/testng").
-suitename test suite默认的名字
指明了在命令行中定义的test suite的名字。这个选项在suite.xml或源码指定了不同的名字时会被忽略。如果使用双引号括起来,就可在名字中使用空格。例如:"like this"。
-testclass 逗号分隔的类列表,它们必须能在类路径中被找到 逗号分隔的测试类的列表 (e.g. "org.foo.Test1,org.foo.test2").
-testjar 一个jar文件 指定了一个包含了测试类的Jar文件。如果testng.xml 在jar文件的根目录被找到,就使用之,反之,jar文件中所有的类都会被当成测试类。
-testname 测试所使用的默认名字 它为在命令行中定义的测试指定了名字。这个选项在suite.xml或源码指定了不同的名字时会被忽略。如果使用双引号括起来,就可在名字中使用空格。例如:"like this"。
-testrunfactory 可以在类路径中找到的Java类 让你指定你自己的测试运行器,相关的类必须实现 org.testng.ITestRunnerFactory.
-threadcount 在并行测试的时候默认使用的线程数 并行运行中所使用的最大线程数。只在使用并行模式中有效(例如,使用-parallel选项)。它可以在suite定义中被覆盖。

上面的参数说明可以通过不带任何参数运行TestNG来获得。

你也可以把命令行开关放到文件中,例如说 c:/command.txt,之后告诉 TestNG 使用这个文件来解析其参数:

C:> more c:/command.txt
-d test-output testng.xml
C:> java org.testng.TestNG @c:/command.txt

此外TestNG也可以在命令行下向其传递JVM参数。例如:

java -Dtestng.test.classpath="c:/build;c:/java/classes;" org.testng.TestNG testng.xml

如下是TestNG所能理解的属性:

系统属性
属性 类型 说明
testng.test.classpath 分号分的一系列目录,其中包含了你的测试类 如果指定了这个属性,TestNG就会查找你的测试类而不是类路径。这在你的类路径中有很多类,而大多数又不是测试类,或者在xml文件中使用 package 标记的时候会很方便。


例子:

java org.testng.TestNG -groups windows,linux -testclass org.test.MyTest

注意 ant task 和 testng.xml 允许你使用更多的参数来运行TestNG(要包含的方法、指定的参数等等),所以你在学习TestNG的时候考虑使用命令行,因为这样能让你快速进步。

你可能感兴趣的:(【译】TestNG官方文档中文版(04)—— 运行TestNG)