Maven 如何在mvn中作为测试运行脚本

Maven 如何在mvn中作为测试运行脚本,maven,testing,jenkins,Maven,Testing,Jenkins,我希望在Maven/Jenkins中有以下场景: 运行测试脚本(bash/shell) 当脚本出现问题(错误)退出时,Jenkins上的Maven build应该处于不稳定状态,而不是失败状态 问题:我怎么做?您可以使用及其目标在Maven中运行脚本 如果您想在测试阶段运行脚本,则可以将插件的执行绑定到脚本,如下所示: <build> <plugins> <plugin> <groupId>org

我希望在Maven/Jenkins中有以下场景:

  • 运行测试脚本(bash/shell)
  • 当脚本出现问题(错误)退出时,Jenkins上的Maven build应该处于
    不稳定
    状态,而不是
    失败
    状态

问题:我怎么做?

您可以使用及其目标在Maven中运行脚本

如果您想在
测试
阶段运行脚本,则可以将插件的执行绑定到脚本,如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>run-test-script</id>
                    <phase>test</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable><!-- configure here your script .sh/.cmd --> </executable>
                <arguments>
                    <argument><!-- configure here arguments, if any --></argument>
                </arguments>
                <workingDirectory><!-- configure here PWD, if required --></workingDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

org.codehaus.mojo
并将其配置为生成后操作:

  • 您应该设置一个正则表达式,它可以作为Jenkins上Maven构建输出的一部分找到。例如,正则表达式
    *脚本失败。*
    将与脚本在这种情况下打印的字符串
    脚本失败
    匹配。因此构建实际上会失败,但是我们可以在Jenkins上更改它的状态(但在Maven上不能)
  • 如果找到,您应该选中选项
    不稳定
    ,该选项将生成的状态从
    失败
    转换为
    不稳定
根据
不稳定(如果发现)
选项的文档:

使用此选项将生成设置为不稳定,而不是使生成失败

您可以在下图中看到此类配置的示例:

因此,您将在
测试阶段执行一个脚本,如果脚本执行,Maven构建将失败,但Jenkins构建将根据您对文本查找器插件的配置更改其状态


还要注意:如果您希望Maven在脚本失败的情况下不会失败,您可以使用上面提到的
successCodes
,并且仍然让Jenkins构建根据文本查找器插件的相同配置将其状态更改为
不稳定
。因此,不同的组合是可能的。

您可以使用及其目标在Maven中运行脚本

如果您想在
测试
阶段运行脚本,则可以将插件的执行绑定到脚本,如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>run-test-script</id>
                    <phase>test</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable><!-- configure here your script .sh/.cmd --> </executable>
                <arguments>
                    <argument><!-- configure here arguments, if any --></argument>
                </arguments>
                <workingDirectory><!-- configure here PWD, if required --></workingDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

org.codehaus.mojo
并将其配置为生成后操作:

  • 您应该设置一个正则表达式,它可以作为Jenkins上Maven构建输出的一部分找到。例如,正则表达式
    *脚本失败。*
    将与脚本在这种情况下打印的字符串
    脚本失败
    匹配。因此构建实际上会失败,但是我们可以在Jenkins上更改它的状态(但在Maven上不能)
  • 如果找到,您应该选中选项
    不稳定
    ,该选项将生成的状态从
    失败
    转换为
    不稳定
根据
不稳定(如果发现)
选项的文档:

使用此选项将生成设置为不稳定,而不是使生成失败

您可以在下图中看到此类配置的示例:

因此,您将在
测试阶段执行一个脚本,如果脚本执行,Maven构建将失败,但Jenkins构建将根据您对文本查找器插件的配置更改其状态


还要注意:如果您希望Maven在脚本失败的情况下不会失败,您可以使用上面提到的
successCodes
,并且仍然让Jenkins构建根据文本查找器插件的相同配置将其状态更改为
不稳定
。因此不同的组合是可能的。

@Azriel这种方法有帮助吗?我放弃了,决定从JUNIT@Azriel这种方法有用吗?我放弃了,决定从JUNIT运行测试