触发插件在mvn测试上测试后执行

时间:2016-05-09 15:06:31

标签: java maven

我想在我的代码中使用https://github.com/saucelabs/sauce-java/tree/master/sauce-connect-plugin中的SauceConnect插件。

此插件的功能执行由不同的maven阶段触发。我想在测试阶段之前触发启动(start-sauceconnect),在测试阶段之后关闭(stop-sauceconnect)。

我的代码只包含测试,通过TestNG与Maven结合运行。

不幸的是,我没有设法通过在测试阶段之后直接调用其中一个阶段来调用关闭函数(stop-sauceconnect)。我通常是通过mvn test运行我的测试;但也可以通过调用mvn clean install来触发关机功能。

这是我的相关maven代码:

    <build>
    <plugins>
        <!-- Include Sauce Connect plugin -->
        <plugin>
            <groupId>com.saucelabs.maven.plugin</groupId>
            <artifactId>sauce-connect-plugin</artifactId>
            <version>2.1.3</version>
            <configuration>
                <sauceUsername>YOUR_SAUCE_USERNAME</sauceUsername>
                <sauceAccessKey>YOUR_SAUCE_ACCESS_KEY</sauceAccessKey>
            </configuration>
            <executions>
                <!-- Start Sauce Connect prior to running the tests -->
                <execution>
                    <id>start-sauceconnct</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>start-sauceconnect</goal>
                    </goals>
                </execution>
                <!-- Stop the Sauce Connect process after the tests have finished -->
                <execution>
                    <id>stop-sauceconnect</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>stop-sauceconnect</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
</build>

据我所知,调用mvn test在完成测试阶段后不会进入任何阶段。

所以我的问题是:在完成测试执行后(通过调用mvn clean installmvn test),如何触发shutdown函数的执行?是否有一个阶段总是进入,或另一个插件,帮助我在正确的时间触发执行?

1 个答案:

答案 0 :(得分:0)

最好的可以说是这个插件是一种集成测试,而不是一种单元测试,所以它更属于集成测试阶段...其中以下生命周期步骤:

  1. 预集成测试
  2. 集成测试
  3. 整后试验
  4. 将它绑定到您可以通过mvn clean verify ...

    调用的那些