可以通过不同方式调用TestNG:
- Command line
- ant
- Eclipse
- IntelliJ's IDEA
本节仅介绍如何从命令行调用TestNG。如果您对其他方式感兴趣,请点击上面的链接之一。
假设您的类路径中有TestNG,调用TestNG的最简单方法如下:
java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...]
您需要指定至少一个描述您尝试运行的TestNG套件的XML文件。此外,还提供以下命令行开关:
命令行参数
选项 | 争论 | 文档 |
-configfailurepolicy | 跳过 | 继续 | TestNG是否应继续执行套件中的其余测试,或者如果@ Before *方法失败则跳过它们。默认行为是跳过。 |
-d | 一个目录 | 生成报告的目录(默认为test-output)。 |
-dataproviderthreadcount | 并行运行测试时用于数据提供程序的默认线程数。 | 这将设置并行运行测试时用于数据提供程序的默认最大线程数。只有选择了并行模式(例如,使用-parallel选项)时,它才会生效。这可以在套件定义中重写。 |
-excludegroups | 以逗号分隔的组列表。 | 要从此运行中排除的组列表。 |
-groups | 以逗号分隔的组列表。 | 要运行的组列表(例如“windows,linux,regression”)。 |
章24 -listener | 可以在类路径中找到的以逗号分隔的Java类列表。 | 允许您指定自己的测试侦听器。这些类需要实现org.testng.ITestListener |
-usedefaultlisteners | 是的 | 假 | 是否使用默认侦听器 |
-方法 | 逗号分隔的完全限定类名和方法列表。例如com.example.Foo.f1,com.example.Bar.f2。 | 允许您指定要运行的各个方法。 |
-methodselectors | 以逗号分隔的Java类列表和定义方法选择器的方法优先级。 | 允许您在命令行上指定方法选择器。例如:com.example.Selector1:3,com.example.Selector2:2 |
-平行 | 方法|测试|类 | 如果指定,则设置用于确定在运行测试时如何使用并行线程的默认机制。如果未设置,则默认机制根本不使用并行线程。这可以在套件定义中重写。 |
-记者 | 自定义报告侦听器的扩展配置。 | 与-listener选项类似,不同之处在于它允许在报告器实例上配置JavaBeans样式的属性。 示例:-reporter com.test.MyReporter:methodFilter = * insert *,enableFiltering = true 您可以拥有此选项的出现次数,每个需要添加一个记者。 |
-sourcedir | 以分号分隔的目录列表。 | 您的javadoc注释测试源所在的目录。只有在使用javadoc类型注释时才需要此选项。(例如“src / test”或“src / test / org / testng / eclipse-plugin; src / test / org / testng / testng”)。 |
-suitename | 用于测试套件的默认名称。 | 它指定在命令行上定义的测试套件的套件名称。如果suite.xml文件或源代码指定了不同的套件名称,则忽略此选项。如果用“双向”这样的双引号括起来,可以创建一个包含空格的套件名称。 |
-testclass | 可以在类路径中找到的以逗号分隔的类列表。 | 由逗号分隔的类文件列表(例如“org.foo.Test1,org.foo.test2”)。 |
-testjar | 一个jar文件。 | 指定包含测试类的jar文件。如果在该jar文件的根目录中找到了testng.xml文件,则将使用该文件,否则,此jar文件中找到的所有测试类都将被视为测试类。 |
-testname | 用于测试的默认名称。 | 它指定在命令行上定义的测试的名称。如果suite.xml文件或源代码指定不同的测试名称,则忽略此选项。如果用“双向”这样的“双引号”包围它,可以创建一个带空格的测试名称。 |
-testnames | 逗号分隔的测试名称列表。 | 只会运行在匹配其中一个名称的<test>标记中定义的测试。 |
-testrunfactory | 可以在类路径中找到的Java类。 | 允许您指定自己的测试运行器。该类需要实现org.testng.ITestRunnerFactory。 |
-threadcount | 并行运行测试时使用的默认线程数。 | 这将设置用于并行运行测试的默认最大线程数。只有选择了并行模式(例如,使用-parallel选项)时,它才会生效。这可以在套件定义中重写。 |
-xmlpathinjar | jar文件中的XML文件的路径。 | 此属性应包含测试jar中有效XML文件的路径(例如“resources / testng.xml”)。默认值为“testng.xml”,表示jar文件根目录中名为“testng.xml ”的文件。除非指定了-testjar,否则将忽略此选项。 |
可以通过不带任何参数调用TestNG来获取此文档。
您还可以将命令行开关放在文本文件中,例如c:\ command.txt,并告诉TestNG使用该文件来检索其参数:
1 C:> more c:\command.txt
2 -d test-output testng.xml
3 C:> java org.testng.TestNG @c:\command.txt
View Code
另外,例如,TestNG可以在Java虚拟机的命令行上传递属性
1 java -Dtestng.test.classpath="c:/build;c:/java/classes;" org.testng.TestNG testng.xml
View Code
以下是TestNG了解的属性:
系统属性属性类型文档testng.test.classpath包含测试类的分号系列目录。如果设置了此属性,TestNG将使用它来查找测试类而不是类路径。如果您在XML文件中使用package标签并且类路径中有很多类,这很方便,大多数类都不是测试类。【待修改】
1 java org.testng.TestNG -groups windows,linux -testclass org.test.MyTest
View Code
该ant任务和的testng.xml让你推出TestNG和多个参数(方法,包括指定参数,等...),所以你应该考虑使用,只有当你试图了解TestNG的命令行,你想快点起床。
要点:如果还指定了一个testng.xml文件(-includedgroups和-excludedgroups除外),它将覆盖testng.xml中找到的所有组包含/排除项,将忽略指定应运行哪些测试的命令行标志。。