你如何让soapUI maven插件安全失败?

时间:2011-08-12 16:56:41

标签: maven integration-testing soapui maven-failsafe-plugin

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

我的问题是,如何使用maven-soapui-plugin执行此操作?我想我可以在我的soapui插件配置中简单地指定<testFailIgnore>true</testFailIgnore>,然后调用failafe插件验证目标,但这不起作用。我不认为我不确定我是否从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有什么问题或这是一种不好的方法吗?还有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

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

可以调整maven-soapui-plugin以将运行测试与验证测试成功状态分开,以在验证之前支持运行集成后测试任务(停止服务器,取消部署工件等)。创建support ticket for this to soapUI guys

也许甚至maven-failsafe-plugin,它的验证mojo,可以扩展为允许指定不同的测试报告格式(JUnit style reports are supported by soapUI)甚至是xven表达式,maven-failsafe-plugin将使用它来确定是否测试失败了。在maven-failsafe-plugin issue tracker上为此创建支持服务单。

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

答案 1 :(得分:1)

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

<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。

答案 2 :(得分: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