Maven 故障安全插件不运行 testNG XML 套件

Posted

技术标签:

【中文标题】Maven 故障安全插件不运行 testNG XML 套件【英文标题】:Maven failsafe plugin does not run testNG XML suite 【发布时间】:2012-09-15 17:19:02 【问题描述】:

我正在使用 maven 运行我在 TestNG 套件中的集成测试。 在eclipse下运行套件时-我的测试套件运行成功。 当运行“mvn verify”来运行我的集成测试时,我看到故障安全插件配置调试打印,包括 suite.xml 文件和我编译的类的正确路径,但它不执行我的测试(构建过程成功完成)。

我尝试运行相同的 pom 配置,但使用的是 surefire 插件而不是故障安全插件,并且我的测试成功执行。

        <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.12.3</version>
                <configuration>
                    <suiteXmlFiles>
                    <suiteXmlFile>src/test/resources/MyTestNgSuiteFile.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <argLine>-Xmx1024m</argLine>
                </configuration>
                    <executions>
          <execution>
            <id>integration-test</id>
            <phase>integration-test</phase>
            <goals>
              <goal>integration-test</goal>
            </goals>
          </execution>
          <execution>
            <id>verify</id>
            <phase>verify</phase>
            <goals>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>

            </plugin>

这是相关的控制台输出:

[调试] 排除: org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 [DEBUG] 排除:junit:junit:jar:3.8.1 [DEBUG] 排除: org.apache.maven:maven-core:jar:2.0.9 [DEBUG] 排除: org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.9 [DEBUG] 排除:org.apache.maven:maven-repository-metadata:jar:2.0.9 [DEBUG] 排除:org.apache.maven:maven-error-diagnostics:jar:2.0.9 [DEBUG] 排除:org.apache.maven:maven-plugin-descriptor:jar:2.0.9 [DEBUG] 排除:org.apache.maven:maven-monitor:jar:2.0.9 [DEBUG] 排除: classworlds:classworlds:jar:1.1 [DEBUG] 排除: org.apache.maven:maven-toolchain:jar:2.0.9 [调试] 配置 mojo org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:integration-test 来自插件领域 ClassRealm[插件>org.apache.maven.plugins:maven-failsafe-plugin:2.12.3, 父:sun.misc.Launcher$AppClassLoader@121ab80] [DEBUG] 配置 魔力 'org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:integration-test' 使用基本配置器 --> [调试] (s) argLine = -Xmx1024m [调试] (s) basedir = PathToMyDir\MyProject [DEBUG] (s) childDelegation = false [DEBUG] (s) classesDirectory = PathToMyDir\MyProject\target\classes [DEBUG] (s) disableXmlReport = false [DEBUG] (s) enableAssertions = true [DEBUG] (s) forkMode = 一次 [DEBUG] (s) junitArtifactName = junit:junit [DEBUG] (s) localRepository = id:本地 网址:file:///..../.m2/repository/ 布局:无

[DEBUG] (f) parallelMavenExecution = false [DEBUG] (s) perCoreThreadCount = true [DEBUG] (s) pluginArtifactMap = org.apache.maven.plugins:maven-failsafe-plugin=org.apache.maven.plugins:maven-failsafe-plugin:maven-plugin:2.12.3:, org.apache.maven.surefire:surefire-booter=org.apache.maven.surefire:surefire-booter:jar:2.12.3:compile, org.apache.maven.surefire:surefire-api=org.apache.maven.surefire:surefire-api:jar:2.12.3:compile, org.apache.maven.surefire:maven-surefire-common=org.apache.maven.surefire:maven-surefire-common:jar:2.12.3:compile, org.apache.commons:commons-lang3=org.apache.commons:commons-lang3:jar:3.1:compile, org.apache.maven.shared:maven-common-artifact-filters=org.apache.maven.shared:maven-common-artifact-filters:jar:1.3:compile, org.codehaus.plexus:plexus-utils=org.codehaus.plexus:plexus-utils:jar:3.0.5:compile, org.apache.maven.reporting:maven-reporting-api=org.apache.maven.reporting:maven-reporting-api:jar:2.0.9:compile, org.apache.maven.plugin-tools:maven-plugin-注释=org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.1:compile [调试] (f) pluginDescriptor = 组件描述符:角色: 'org.apache.maven.plugin.Mojo',实现: 'org.apache.maven.plugin.failsafe.HelpMojo',角色提示: 'org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:help' 角色: 'org.apache.maven.plugin.Mojo',实现: 'org.apache.maven.plugin.failsafe.IntegrationTestMojo',角色提示: 'org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:integration-test' 角色:'org.apache.maven.plugin.Mojo',实现: 'org.apache.maven.plugin.failsafe.VerifyMojo',角色提示: 'org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:verify' --- [DEBUG] (s) printSummary = true [DEBUG] (s) projectArtifactMap = All Artifacts Here [DEBUG] (s) redirectTestOutputToFile = false [DEBUG] (s) remoteRepositories = [ id: central 网址:http://repo1.maven.org/maven2 布局:默认快照:[启用 => 假,更新 => 每日] 发布:[启用 => 真, update => never] ] [DEBUG] (s) reportFormat = brief [DEBUG] (s) 报告目录 = PathToMyDir\MyProject\target\failsafe-reports [DEBUG] (s) runOrder = 文件系统 [DEBUG] (s) skip = false [DEBUG] (s) skipTests = false [DEBUG] (s) suiteXmlFiles = [PathToMyDir\MyProject\src\test\resources\MyTestNgSuiteFile.xml] [DEBUG] (s) 摘要文件 = PathToMyDir\MyProject\target\failsafe-reports\failsafe-summary.xml [DEBUG] (s) testClassesDirectory = PathToMyDir\MyProject\target\test-classes [DEBUG] (s) testNGArtifactName = org.testng:testng [DEBUG] (s) testSourceDirectory = PathToMyDir\MyProject\src\test\java [调试] (s) trimStackTrace = true [DEBUG] (s) useFile = true [DEBUG] (s) useManifestOnlyJar = true [DEBUG] (s) useSystemClassLoader = true [DEBUG] (s) useUnlimitedThreads = false [DEBUG] (s) workingDirectory = PathToMyDir\MyProject [DEBUG] (s) project = MavenProject:MyParentProject:MyProject:0.0.1-SNAPSHOT @ PathToMyDir\MyProject\pom.xml [DEBUG] (s) session = org.apache.maven.execution.MavenSession@bffe59 [DEBUG] -- 结束 配置 -- [警告] 文件编码尚未设置,使用 平台编码 Cp1255,即构建依赖于平台! [信息] [INFO] --- maven-failsafe-plugin:2.12.3:verify(验证)@MyProject --- [调试] 配置 mojo org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:verify from 插件领域 ClassRealm[插件>org.apache.maven.plugins:maven-failsafe-plugin:2.12.3, 父:sun.misc.Launcher$AppClassLoader@121ab80] [DEBUG] 配置 mojo 'org.apache.maven.plugins:maven-failsafe-plugin:2.12.3:verify' 使用基本配置器 --> [DEBUG] (s) basedir = PathToMyDir\MyProject [DEBUG] (s) reportsDirectory = PathToMyDir\MyProject\target\failsafe-reports [DEBUG] (s) 跳过 = 错误 [DEBUG] (f) 摘要文件 = PathToMyDir\MyProject\target\failsafe-reports\failsafe-summary.xml [DEBUG] (s) testClassesDirectory = PathToMyDir\MyProject\target\test-classes [DEBUG] (s) testFailureIgnore = false [DEBUG] -- 结束配置 -- [INFO] 故障安全报告目录: PathToMyDir\MyProject\target\failsafe-reports [警告] 文件编码 尚未设置,使用平台编码 Cp1255,即 build 是 平台相关!

看起来 "Forking command line: cmd.exe /X /C "C:\Program Files (x86)\Java\jdk1.7.0_04..." 命令丢失并且没有被执行。 我将不胜感激。

【问题讨论】:

“但它不运行我的测试”是什么意思?错误信息?此外,您是否正确配置了 maven-failsafe-plugin? 我没有看到任何错误,我的测试也没有执行。我只是将故障安全插件“验证”目标设置为 Maven“验证”周期。无论如何,当我明确执行“failsafe:verify”或“failsafe:integration-test”时也会发生这种情况 你能把你的完整pom贴出来吗。 在目标之上运行时能否发布控制台消息。 我已使用请求的信息编辑了我的原始帖子。 【参考方案1】:

我遇到了类似的问题,将故障保护插件降级为 2.11 对我有用。

【讨论】:

将故障安全插件版本更改为 2.11 后它就可以工作了!!!非常感谢拉斯!我想知道这是否是一个 Maven 错误...

以上是关于Maven 故障安全插件不运行 testNG XML 套件的主要内容,如果未能解决你的问题,请参考以下文章

如何参数化 Maven surefire 插件,以便我可以选择运行哪些 TestNG 套件

故障安全插件不会在一个项目上运行,但会在另一个项目上运行——为啥?

无法理解 Spring Boot 如何使用 maven 管理集成测试。它是不是使用故障安全插件?

从命令提示符运行testng.xml。我有从Maven Project创建的jar。 Surefireplugin并没有解决我的目的

如何在 Maven 中从 pom.xml 调用 testng.xml 文件

testng运行报错 请问是为啥