故障安全:集成测试

全名

org.apache.maven.plugins:maven-failsafe-plugin:2.5:integration-test

说明

使用 Surefire 运行集成测试。

属性

  • 需要执行 Maven 2.0 项目。
  • 需要范围内工件的依赖关系解析:test.
  • 默认绑定到生命周期阶段:integration-test.

必需参数

姓名 类型 自从 描述
基于的 File - 正在测试的项目的基本目录。这可以通过 System.getProperty("basedir") 在您的单元测试中获得。
类目录 File - 包含正在测试的项目的生成类的目录。这将包含在测试类路径中的测试类之后。
默认值为${project.build.outputDirectory}
摘要文件 File - 要将集成测试结果写入的摘要文件。
测试类目录 File - 包含正在测试的项目的生成测试类的目录。这将包含在测试类路径的开头。
默认值为${project.build.testOutputDirectory}
测试源目录 File 2.2 包含测试类源的测试源目录。

可选参数

姓名 类型 自从 描述
附加类路径元素 List 2.4 要附加到类路径的其他元素。
参数线 String 2.1 在命令行上设置的任意 JVM 选项。
子委托 boolean 2.1 当为 false 时,它​​使测试使用标准的类加载器委托而不是默认的 Maven 隔离类加载器运行。仅在分叉时使用(forkMode 不是“none”)。
将其设置为 false 有助于解决类路径中的 xml 解析器与 Java 5 提供程序解析器之间的冲突引起的一些问题。
默认值为false
debugForkedProcess String 2.4 将调试器附加到分叉的 JVM。如果设置为“true”,进程将暂停并等待调试器连接到端口 5005。如果设置为其他字符串,该字符串将附加到 argLine,允许您配置任意可调试性选项(不覆盖其他argLine 中指定的选项)。
disableXmlReport boolean 2.2 标志以禁用生成 xml 格式的报告文件。
默认值为false
启用断言 boolean 2.3.1 默认情况下,Surefire 启用 JVM 断言来执行您的测试用例。要禁用断言,请将此标志设置为 false
默认值为true
编码 String - 要应用的字符编码方案。
默认值为${project.reporting.outputEncoding}
环境变量 Map 2.1.3 要在命令行上设置的其他环境。
排除组 String 2.2 (仅限 TestNG)排除的组。具有此列表中指定的组之一的任何方法/类/等都不会运行。如果指定了 suiteXmlFiles,则此参数将被覆盖。
排除 List - 用于指定应在测试中排除的测试的模式列表(以逗号分隔)。如果未指定且未指定 test参数,则默认排除将是**/*$*(排除所有内部类)。如果指定了 TestNG suiteXmlFiles,则忽略此参数。
失败如果没有测试 Boolean 2.4 如果没有要运行的测试,请将其设置为“true”以导致失败。默认为假。
分叉模式 String 2.1 指定分叉模式的选项。可以是“从不”、“一次”或“总是”。“none”和“pertest”也被接受以实现向后兼容性。
默认值为once
forkedProcessTimeoutInSeconds int 2.4 在一定秒数后终止分叉的测试进程。如果设置为 0,则永远等待进程,永不超时。
团体 String 2.2 (仅限 TestNG)此测试的组。如果指定,只有用此处指定的组之一装饰的类/方法/等才会包含在测试运行中。如果指定了 suiteXmlFiles,则此参数将被覆盖。
包括 List - 用于指定应包含在测试中的测试的模式列表(以逗号分隔)。如果未指定 test且未指定参数,则默认包含**/IT*.java **/*IT.java **/*ITCase.java. 如果指定了 TestNG suiteXmlFiles,则忽略此参数。
junitArtifactName String 2.3.1 允许您指定 JUnit 工件的名称。如果没有设置, junit:junit将被使用。
默认值为junit:junit
虚拟机 String 2.1 用于指定要与分叉选项一起使用的 jvm(或 java 可执行文件的路径)的选项。默认情况下,jvm 将与用于运行 Maven 的 jvm 相同。
对象工厂 String 2.5 (仅限TestNG)定义用于创建所有测试实例的工厂类
平行线 String 2.2 (仅限TestNG)当您使用parallel 属性时,TestNG 将尝试在单独的线程中运行所有测试方法,但相互依赖的方法除外,它们将在同一线程中运行以尊重它们的执行顺序。

在 JUnit 4.7 中,这些值是类/方法/两者都在单独的线程中运行,由 threadCount 控制。
perCoreThreadCount String 2.5 (仅限junitcore)指示threadCount 是每个cpu 核心。默认为真
打印总结 boolean - 打印测试套件摘要或仅打印有错误的测试用例的选项。
默认值为true
特性 Properties 2.4 用于配置所有 TestNG 相关配置的属性列表。这是配置 TestNG 的新的首选方法。
重定向测试输出到文件 boolean 2.3 分叉时,将此设置为 true 以将单元测试标准输出重定向到文件(在 reportsDirectory/testName-output.txt 中找到)。
默认值为false
远程存储库 List 2.2 在 POM 中声明的插件远程存储库。
报告格式 String - 选择要生成的测试报告的格式。可以设置为简单或简单。
默认值为brief
报告目录 File - 写入所有报告的基本目录。
跳过 boolean - 将此设置为“true”以完全绕过单元测试。不推荐使用它,特别是如果您使用“maven.test.skip”属性启用它,因为 maven.test.skip 会禁用运行测试和编译测试。请考虑改用 skipTests 参数。
跳过执行 boolean 2.3 已弃用。请改用 -DskipTests。
跳过IT boolean 2.4.3-alpha-2 将此设置为“true”以跳过正在运行的集成测试,但仍会编译它们。不推荐使用它,但有时很方便。
跳过测试 boolean 2.4 将此设置为“true”以跳过正在运行的测试,但仍编译它们。不推荐使用它,但有时很方便。
套件Xml文件 File[] 2.2 (仅限 TestNG)TestNG 套件 xml 文件位置列表,以逗号分隔。请注意,suiteXmlFiles 与此插件上的其他几个参数不兼容,例如包含/排除。如果指定了“test”参数,则忽略此参数(允许您运行单个测试而不是整个套件)。
系统属性 Properties - 已弃用。请改用 systemPropertyVariables。
系统属性变量 Map 2.5 要传递给 JUnit 测试的系统属性列表。
测试 String - 指定此参数以按文件名运行单个测试,覆盖includes/excludes参数。您在此处指定的每个模式都将用于创建格式如下的包含模式**/${test}.java,因此您只需键入“-Dtest=MyTest”即可运行名为“foo/MyTest.java”的单个测试。此参数将覆盖 TestNG suiteXmlFiles 参数。
testNGArtifactName String 2.3.1 允许您指定 TestNG 工件的名称。如果没有设置, org.testng:testng将被使用。
默认值为org.testng:testng
线程数 int 2.2 (仅限TestNG)属性thread-count 允许您指定应为此执行分配多少线程。只有与并行一起使用才有意义。
trimStackTrace boolean 2.2 是否将报告中的堆栈跟踪修剪为仅测试中的行,或显示完整的跟踪。
默认值为true
使用文件 boolean - 生成文件测试报告或仅将测试报告输出到控制台的选项。
默认值为true
使用ManifestOnlyJar boolean 2.4.3 默认情况下,Surefire 使用仅清单 JAR 分叉您的测试;将此参数设置为“false”以强制它使用普通的旧 Java 类路径启动您的测试。(有关仅清单 JAR 及其好处的更详细说明,请参阅 http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html。)

请注意,如果您的类路径太长,将其设置为“false”可能会导致您的测试在 Windows 上失败。
默认值为true
使用SystemClassLoader Boolean 2.3 将依赖项传递给系统的类加载器的选项,而不是在分叉时使用隔离的类加载器。防止使用系统的类加载器实现服务提供者查找机制的 JDK 出现问题。默认值为“真”。
使用无限线程 String 2.5 (仅限junitcore)表示线程池将是无限的。并行参数和类/方法的实际数量将决定。将此设置为 true 会有效地禁用 perCoreThreadCount 和 threadCount。
工作目录 File 2.1.3 命令行工作目录。

参数详情

附加类路径元素

要附加到类路径的其他元素。
  • 类型java.util.List
  • 2.4
  • 必需No

参数线

在命令行上设置的任意 JVM 选项。
  • 类型java.lang.String
  • 2.1
  • 必需No
  • 表达式${argLine}

基于

正在测试的项目的基本目录。这可以通过 System.getProperty("basedir") 在您的单元测试中获得。
  • 类型java.io.File
  • 必需Yes
  • 表达式${basedir}

子代

当为 false 时,它​​使测试使用标准的类加载器委托而不是默认的 Maven 隔离类加载器运行。仅在分叉时使用(forkMode 不是“none”)。
将其设置为 false 有助于解决类路径中的 xml 解析器与 Java 5 提供程序解析器之间的冲突引起的一些问题。
  • 类型boolean
  • 2.1
  • 必需No
  • 表达式${childDelegation}
  • 默认false

类目录

包含正在测试的项目的生成类的目录。这将包含在测试类路径中的测试类之后。
  • 类型java.io.File
  • 必需Yes
  • 默认${project.build.outputDirectory}

debugForkedProcess

将调试器附加到分叉的 JVM。如果设置为“true”,进程将暂停并等待调试器连接到端口 5005。如果设置为其他字符串,该字符串将附加到 argLine,允许您配置任意可调试性选项(不覆盖其他argLine 中指定的选项)。
  • 类型java.lang.String
  • 2.4
  • 必需No
  • 表达式${maven.failsafe.debug}

disableXmlReport

标志以禁用生成 xml 格式的报告文件。
  • 类型boolean
  • 2.2
  • 必需No
  • 表达式${disableXmlReport}
  • 默认false

启用断言

默认情况下,Surefire 启用 JVM 断言来执行您的测试用例。要禁用断言,请将此标志设置为 false
  • 类型boolean
  • 2.3.1
  • 必需No
  • 表达式${enableAssertions}
  • 默认true

编码

要应用的字符编码方案。
  • 类型java.lang.String
  • 必需No
  • 表达式${encoding}
  • 默认${project.reporting.outputEncoding}

环境变量

要在命令行上设置的其他环境。
  • 类型java.util.Map
  • 2.1.3
  • 必需No

排除组

(仅限 TestNG)排除的组。具有此列表中指定的组之一的任何方法/类/等都不会运行。如果指定了 suiteXmlFiles,则此参数将被覆盖。
  • 类型java.lang.String
  • 2.2
  • 必需No
  • 表达式${excludedGroups}

不包括

用于指定应在测试中排除的测试的模式列表(以逗号分隔)。如果未指定且未指定 test参数,则默认排除将是**/*$*(排除所有内部类)。如果指定了 TestNG suiteXmlFiles,则忽略此参数。
  • 类型java.util.List
  • 必需No

失败如果没有测试

如果没有要运行的测试,请将其设置为“true”以导致失败。默认为假。
  • 类型java.lang.Boolean
  • 2.4
  • 必需No
  • 表达式${failIfNoTests}

叉子模式

指定分叉模式的选项。可以是“从不”、“一次”或“总是”。“none”和“pertest”也被接受以实现向后兼容性。
  • 类型java.lang.String
  • 2.1
  • 必需No
  • 表达式${forkMode}
  • 默认once

forkedProcessTimeoutInSeconds

在一定秒数后终止分叉的测试进程。如果设置为 0,则永远等待进程,永不超时。
  • 类型int
  • 2.4
  • 必需No
  • 表达式${failsafe.timeout}

团体

(仅限 TestNG)此测试的组。如果指定,只有用此处指定的组之一装饰的类/方法/等才会包含在测试运行中。如果指定了 suiteXmlFiles,则此参数将被覆盖。
  • 类型java.lang.String
  • 2.2
  • 必需No
  • 表达式${groups}

包括

用于指定应包含在测试中的测试的模式列表(以逗号分隔)。如果未指定 test且未指定参数,则默认包含**/IT*.java **/*IT.java **/*ITCase.java. 如果指定了 TestNG suiteXmlFiles,则忽略此参数。
  • 类型java.util.List
  • 必需No

junitArtifactName

允许您指定 JUnit 工件的名称。如果没有设置, junit:junit将被使用。
  • 类型java.lang.String
  • 2.3.1
  • 必需No
  • 表达式${junitArtifactName}
  • 默认junit:junit

虚拟机

用于指定要与分叉选项一起使用的 jvm(或 java 可执行文件的路径)的选项。默认情况下,jvm 将与用于运行 Maven 的 jvm 相同。
  • 类型java.lang.String
  • 2.1
  • 必需No
  • 表达式${jvm}

对象工厂

(仅限TestNG)定义用于创建所有测试实例的工厂类
  • 类型java.lang.String
  • 2.5
  • 必需No
  • 表达式${objectFactory}

并行

(仅限TestNG)当您使用parallel 属性时,TestNG 将尝试在单独的线程中运行所有测试方法,但相互依赖的方法除外,它们将在同一线程中运行以尊重它们的执行顺序。

在 JUnit 4.7 中,这些值是类/方法/两者都在单独的线程中运行,由 threadCount 控制。
  • 类型java.lang.String
  • 2.2
  • 必需No
  • 表达式${parallel}

perCoreThreadCount

(仅限junitcore)指示threadCount 是每个cpu 核心。默认为真
  • 类型java.lang.String
  • 2.5
  • 必需No
  • 表达式${perCoreThreadCount}

打印总结

打印测试套件摘要或仅打印有错误的测试用例的选项。
  • 类型boolean
  • 必需No
  • 表达式${failsafe.printSummary}
  • 默认true

属性

用于配置所有 TestNG 相关配置的属性列表。这是配置 TestNG 的新的首选方法。
  • 类型java.util.Properties
  • 2.4
  • 必需No

重定向测试输出到文件

分叉时,将此设置为 true 以将单元测试标准输出重定向到文件(在 reportsDirectory/testName-output.txt 中找到)。
  • 类型boolean
  • 2.3
  • 必需No
  • 表达式${maven.test.redirectTestOutputToFile}
  • 默认false

远程存储库

在 POM 中声明的插件远程存储库。
  • 类型java.util.List
  • 2.2
  • 必需No
  • 表达式${project.pluginArtifactRepositories}

报告格式

选择要生成的测试报告的格式。可以设置为简单或简单。
  • 类型java.lang.String
  • 必需No
  • 表达式${failsafe.reportFormat}
  • 默认brief

报告目录

写入所有报告的基本目录。
  • 类型java.io.File
  • 必需No
  • 表达式${project.build.directory}/failsafe-reports

跳过

将此设置为“true”以完全绕过单元测试。不推荐使用它,特别是如果您使用“maven.test.skip”属性启用它,因为 maven.test.skip 会禁用运行测试和编译测试。请考虑改用 skipTests 参数。
  • 类型boolean
  • 必需No
  • 表达式${maven.test.skip}

跳过执行

已弃用。请改用 -DskipTests。
这个旧参数就像 skipTests,但绑定到旧属性 maven.test.skip.exec。
  • 类型boolean
  • 2.3
  • 必需No
  • 表达式${maven.test.skip.exec}

跳过

将此设置为“true”以跳过正在运行的集成测试,但仍会编译它们。不推荐使用它,但有时很方便。
  • 类型boolean
  • 2.4.3-alpha-2
  • 必需No
  • 表达式${skipITs}

跳过测试

将此设置为“true”以跳过正在运行的测试,但仍编译它们。不推荐使用它,但有时很方便。
  • 类型boolean
  • 2.4
  • 必需No
  • 表达式${skipTests}

套件Xml文件

(仅限 TestNG)TestNG 套件 xml 文件位置列表,以逗号分隔。请注意,suiteXmlFiles 与此插件上的其他几个参数不兼容,例如包含/排除。如果指定了“test”参数,则忽略此参数(允许您运行单个测试而不是整个套件)。
  • 类型java.io.File[]
  • 2.2
  • 必需No

摘要文件

要将集成测试结果写入的摘要文件。
  • 类型java.io.File
  • 必需Yes
  • 表达式${project.build.directory}/failsafe-reports/failsafe-summary.xml

系统属性

已弃用。请改用 systemPropertyVariables。
要传递给 JUnit 测试的系统属性列表。
  • 类型java.util.Properties
  • 必需No

系统属性变量

要传递给 JUnit 测试的系统属性列表。
  • 类型java.util.Map
  • 2.5
  • 必需No

测试

指定此参数以按文件名运行单个测试,覆盖includes/excludes参数。您在此处指定的每个模式都将用于创建格式如下的包含模式**/${test}.java,因此您只需键入“-Dtest=MyTest”即可运行名为“foo/MyTest.java”的单个测试。此参数将覆盖 TestNG suiteXmlFiles 参数。
  • 类型java.lang.String
  • 必需No
  • 表达式${it.test}

测试类目录

包含正在测试的项目的生成测试类的目录。这将包含在测试类路径的开头。
  • 类型java.io.File
  • 必需Yes
  • 默认${project.build.testOutputDirectory}

测试NGArtifactName

允许您指定 TestNG 工件的名称。如果没有设置, org.testng:testng将被使用。
  • 类型java.lang.String
  • 2.3.1
  • 必需No
  • 表达式${testNGArtifactName}
  • 默认org.testng:testng

测试源目录

包含测试类源的测试源目录。
  • 类型java.io.File
  • 2.2
  • 必需Yes
  • 表达式${project.build.testSourceDirectory}

线程数

(仅限TestNG)属性thread-count 允许您指定应为此执行分配多少线程。只有与并行一起使用才有意义。
  • 类型int
  • 2.2
  • 必需No
  • 表达式${threadCount}

修剪堆栈跟踪

是否将报告中的堆栈跟踪修剪为仅测试中的行,或显示完整的跟踪。
  • 类型boolean
  • 2.2
  • 必需No
  • 表达式${trimStackTrace}
  • 默认true

使用文件

生成文件测试报告或仅将测试报告输出到控制台的选项。
  • 类型boolean
  • 必需No
  • 表达式${failsafe.useFile}
  • 默认true

useManifestOnlyJar

默认情况下,Surefire 使用仅清单 JAR 分叉您的测试;将此参数设置为“false”以强制它使用普通的旧 Java 类路径启动您的测试。(有关仅清单 JAR 及其好处的更详细说明,请参阅 http://maven.apache.org/plugins/maven-surefire-plugin/examples/class-loading.html。)

请注意,如果您的类路径太长,将其设置为“false”可能会导致您的测试在 Windows 上失败。
  • 类型boolean
  • 2.4.3
  • 必需No
  • 表达式${failsafe.useManifestOnlyJar}
  • 默认true

使用系统类加载器

将依赖项传递给系统的类加载器的选项,而不是在分叉时使用隔离的类加载器。防止使用系统的类加载器实现服务提供者查找机制的 JDK 出现问题。默认值为“真”。
  • 类型java.lang.Boolean
  • 2.3
  • 必需No
  • 表达式${failsafe.useSystemClassLoader}

使用无限线程

(仅限junitcore)表示线程池将是无限的。并行参数和类/方法的实际数量将决定。将此设置为 true 会有效地禁用 perCoreThreadCount 和 threadCount。
  • 类型java.lang.String
  • 2.5
  • 必需No
  • 表达式${useUnlimitedThreads}

工作目录

命令行工作目录。
  • 类型java.io.File
  • 2.1.3
  • 必需No
  • 表达式${basedir}