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有什么问题或这是一种不好的方法吗?还有更好的方法吗?
答案 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