简介: 运行TestNG
TestNG可以以不同的方式调用:
* Command line
* ant
* Eclipse
* IntelliJ's IDEA
本节仅说明如何从命令行调用TestNG。如果您对其他方式感兴趣,官网地址TestNG
1) 命令行
假设你已经将TestNG加入到class path,调用TestNG最简单的方法事下面的:
java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...]
必须指定最少一个描述你试图测试的TestNG suite的xml文件。另外,下面的命令行参数可以使用:
选项 | 参数 | 文档说明 |
---|---|---|
-configfailurepolicy | skip | continue | 如果@Before*方法失败,TestNG应该继续执行suite中剩余的测试还是跳过它们。默认行为是跳过 |
-d | 一个目录 | 生成报告的目录 |
-dataproviderthreadcount | 并行运行测试时用于 dataproviders的默认线程数 | 这将设置并行运行测试时data providers 使用的默认最大线程数。它只有在选择了并行模式时才会生效(例如,使用-parallel选项)。这个设置可以被suite定义覆盖. |
-excludegroups | 以逗号分隔的组列表 | 从本次运行中排除的组列表 |
-groups | 以逗号分隔的组列表 | 要运行的组列表 |
-listener | 可以在类路径中找到以逗号分隔的Java类列表 | 你自己指定的监听器。这些类要实现 org.testng.ITestListener |
-usedefaultlisteners | true|false | 是否使用默认监听器 |
-methods | 以逗号分隔的完全限定类名和方法列表 | 允许你指定要运行的单个方法 |
-methodselectors | 用逗号分隔的Java类和定义方法选择器的方法的优先级列表 | 允许您在命令行上指定方法选择器,例如:com.example.Selector1:3,com.example.Selector2:2 |
-parallel | methods|tests|classes | 如果指定, 设置运行测试时如何使用并发线程的默认机制.如果不设置,默认机制是完全不使用并发线程。这个设置可以被suite定义覆盖. |
-reporter | 扩展配置用于自定义报告listenner | 类似 -listener 选项, 除了容许reporter示例上由javabean形式的配置.例如: -reporter com.test.MyReporter:methodFilter=*insert*,enableFiltering=true 这个选项可以配置多次,每个需要生成的报告都可以配置一次。 |
-sourcedir | 以逗号分隔的目录列表。 | 带有javadoc注释的测试源文件目录. 这个选项只在使用javadoc类型的注解时才有效. 例如:"src/test" or "src/test/org/testng/eclipse-plugin;src/test/org/testng/testng" |
-suitename | 测试套件使用的默认名称. | 指定在命令行上定义的测试套件的名称。如果suite.xml文件或源代码指定了另外一个不同的套件名称,这个选项将被忽略。可以创建带空格的套件名称,如果在名称前后加双引号如"like this". |
-testclass | 可以在类路径中找到的以逗号分隔的类列表。 | 用逗号分隔的类文件列表 (e.g. "org.foo.Test1,org.foo.test2"). |
-testjar | 一个 jar | 指定包含测试类的jar文件。如果在这个jar文件的根目录下找到一个testng.xml文件,就会使用它,否则,在这个jar文件中找到的所有测试类都将被认为是测试类。 |
-testname | 测试的默认名称 | 指定了在命令行上定义的测试的名称。如果suite.xml文件或源代码指定了不同的测试名称,则忽略此选项。如果您使用双引号“like this”将其包围起来,则可以创建一个包含空格的测试名称。 |
-testnames | 用逗号分隔测试名称列表。 | 只有在<test>标签中定义的匹配这些名称之一的测试将被运行。 |
-testrunfactory | 可以在类路径中找到的Java类 | 允许你指定自己的测试运行程序。这个类需要实现 org.testng.ITestRunnerFactory. |
-threadcount | 并行运行测试时使用的默认线程数。 | 这将设置并行运行测试时使用的默认最大线程数。它只有在选择了并行模式时才会生效(例如,使用-parallel选项)。这个设置可以被suite定义覆盖. |
-xmlpathinjar | jar文件中XML文件的路径 | 这个属性应该包含测试jar中一个有效XML文件的路径(例如:“resources/ testng.xml”)。默认是“testng.xml”,这意味需要在jar文件的根目录下有一个名为“testng.xml”的文件。该option 只有在指定了 -testjar 时,才会生效 |
可以通过不带任何参数直接调用TestNG来获得这个文档。
可以将命令行开关写到txt文件中,例如c:\command.txt, 然后告诉TestNG使用这个文件类找到参数:
C:> more c:\command.txt
-d test-output testng.xml
C:> java org.testng.TestNG @c:\command.txt
另外,可以通过jvm的命令行来传递参数给TestNG,例如
java -Dtestng.test.classpath="c:/build;c:/java/classes;" org.testng.TestNG testng.xml
TestNG能够理解的参数:
属性 | 类型 | 文档 |
---|---|---|
testng.test.classpath | 分号分隔的包含测试类的一系列目录 | 如果这个属性被设置,TestNG将使用它替代从class path来查找测试类. 如果你正在使用在xml文件里面的包标签并且在classpath路径中由很多类而大部分都不是测试类的时候比较方便 |
例如:
java org.testng.TestNG -groups windows,linux -testclass org.test.MyTest
注意 ant 任务和testng.xml容许用更多的参数来启动TestNG(包含的方法,指定的参数,等等),因此可以认为命令行适用于学习TestNG并且想快速入门。