0

AFAIK,maven failsafe 插件失败安全,因为它有单独的目标来运行测试和失败基于测试的构建。这些旨在分别绑定到集成测试和验证目标。这允许在构建失败之前运行后集成测试绑定目标(关闭构建)。

我的问题是,如何使用 maven-soapui-plugin 执行此操作?我以为我可以简单地<testFailIgnore>true</testFailIgnore>在我的 soapui 插件配置中指定,然后调用故障安全插件验证目标,但这不起作用。我认为我不确定我是否从soapui 插件中获得了摘要文件。我不断收到Expected root element 'failsafe-summary' but found 'testsuite'这里是 POM 的一个片段:

<plugin>
    <groupId>eviware</groupId>
    <artifactId>maven-soapui-plugin</artifactId>
    <version>4.0.0</version>
    <configuration>
        <junitReport>true</junitReport>
        <exportAll>true</exportAll>
        <outputFolder>${project.build.directory}/surefire-reports</outputFolder>
        <testFailIgnore>true</testFailIgnore>
        <printReport>true</printReport>
    </configuration>
    <executions>
        <execution>
            <id>FailingTest</id>
            <phase>integration-test</phase>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <projectFile>${basedir}/testData/soapui-integration-tests.xml</projectFile>
                <host>localhost</host>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.9</version>
    <executions>
          <execution>
           <phase>verify</phase>
            <id>verify</id>
            <goals>
              <goal>verify</goal>
            </goals>
            <configuration>
              <summaryFiles>
                <summaryFile>${project.build.directory}/surefire-reports/TEST-TestSuite_1.xml</summaryFile>
              </summaryFiles>
            </configuration>
        </execution>
    </executions>
</plugin>

我的 POM 有问题还是这是一种不好的方法?有没有更好的方法?

4

3 回答 3

1

AFAIK maven-failsafe-plugin 只能验证由 maven-failsafe-plugin 而不是 maven-soapui-plugin 运行的测试的成功状态。它通过读取具有特定格式的测试摘要报告文件 (failsafe-summary.xml) 来实现。

maven-soapui-plugin 可以调整为将正在运行的测试与验证测试成功状态分开,以支持在验证之前运行集成后测试任务(停止服务器、取消部署工件等)。为soapUI 伙计们创建一张支持票

也许甚至 maven-failsafe-plugin,它是验证 mojo,可以扩展以允许指定不同的测试报告格式(soapUI 支持 JUnit 样式报告)甚至是 maven-failsafe-plugin 用来确定是否存在的 xpath 表达式测试失败与否。在maven-failsafe-plugin issue tracker上为此创建支持票。

在支持这些扩展之前,您需要在集成测试后阶段执行任务,您可以使用soapUI JUnit 集成并让maven-failsafe-plugin 运行这些soapUI JUnit 测试。

于 2011-09-17T14:42:38.057 回答
1

我正在尝试这个解决方案,但它不起作用。但我找到了一个。为了在 Jenkins 中获取 SOAPUI 测试的 de 测试报告,我在我的 Soap 测试文件夹的 pom.xml 中使用了具有此配置的故障安全插件:

<build>
    <plugins>
        <plugin>
            <groupId>eviware</groupId>
            <artifactId>maven-soapui-plugin</artifactId>
            <version>2.6.1</version>
            <configuration>
                <projectFile>${basedir}/soap_project_tests.xml</projectFile>
                <outputFolder>${filePath.reports.soap}</outputFolder>
                <testFailIgnore>true</testFailIgnore>
                <junitReport>true</junitReport>
                <exportwAll>true</exportwAll>
                <printReport>true</printReport>
            </configuration>
            <executions>
                <execution>
                    <id>run-soap-integration-test</id>
                    <phase>integration-test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.11</version>
            <configuration>
                <reportsDirectory>${filePath.reports.soap}</reportsDirectory>
                <printSummary>true</printSummary>
                <argLine>-Xmx512m</argLine>
            </configuration>
            <executions>
                <execution>
                    <id>soap-integration-test-verify</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

测试用例状态取决于 Jenkins。

于 2012-02-22T10:48:03.413 回答
1

有一个soapui插件的开源扩展,它有一个单独的测试验证目标,正是为了这个目的。

https://github.com/redfish4ktc/maven-soapui-extension-plugin

以下示例显示了所需的配置: https ://github.com/redfish4ktc/maven-soapui-extension-plugin/blob/master/src/it/test-verify_goal/one_failing_project/pom.xml

于 2013-09-05T11:05:28.153 回答