exec-maven-plugin开始时并没有处于正确的阶段

时间:2013-05-17 10:01:18

标签: maven integration-testing exec-maven-plugin

我想在预集成阶段启动服务器并进行一些集成测试。问题是它只在集成测试后才开始。

我的pom看起来像这样:

plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.14.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <id>start-server</id>
                    <phase>pre-integration-test</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <executableDependency>
                            <groupId>mygroup</groupId>
                            <artifactId>MyServer-Server</artifactId>
                        </executableDependency>
                        <mainClass>mygroup.myServer.MyServer</mainClass>
                        <arguments>
                            <argument>-batch</argument>
                            <argument>-port</argument>
                            <argument>1024</argument>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我的Test是一个名为TestMyServerIT的jUnit-Case,位于src / test / main中,如下所示:

public class TestMyServerIT {

private Socket server;

@Test
public void testConnection() {
    try {
        server = new Socket("localhost", 1024);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

如果尝试mvn验证,

会因连接被拒绝而失败 但是当我运行服务器时它会成功。

如果我评论测试,在“mvn verify”之后有一个服务器在端口1024上运行,因为我还没有在pom文件中停止它。我可以在这个端口上访问它,只是没有及时进行测试。

如何在测试之前断言服务器是否已启动?

我似乎还有另一个需要先解决的问题。 Failsafe-plugin没有启动验证,如果我尝试failafe,它说它缺少xml:验证

0 个答案:

没有答案