我正在 Jenkins 机器上运行使用 Maven 构建的 jUnit4 测试。我的目标是在执行测试之前恢复测试数据库。

看起来 exec-maven-plugin 是要走的路,但我无法让它运行。任何指针?尽管有很多示例,但 mojo 站点上的文档非常少。

我需要运行的类(class)目前位于:



我的 pom.xml 包括:

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.3</version>
            <executions>
                <execution>
                    <id>build-test-environment</id>
                    <phase>generate-test-resources</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>src.test.java._tools.BuildTestEnvironment</mainClass>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

在 Jenkins 中运行它,什么都没有发生。如果我在本地运行它,我会得到

我尝试过但没有成功的事情:
  • 在 Jenkins 中运行构建:什么也没发生。项目构建并开始运行测试,但我的类(class)没有运行。
  • 在本地运行构建:与 Jenkins 中的结果相同。不出意外。
  • 在本地运行 generate-test-resources:ClassNotFoundException。 IE:

  • 将类编译成一个 jar,并将其添加到我的 pom.xml 文件中。

  • 更新:

    阅读@ppuskar 的评论后,我尝试稍微移动我的 buildxxx 类。将其移动到 src.main.java._tools.BuildTestEnvironment 后,我​​仍然收到类似的消息。这是我的构建日志,以防万一:

    最佳答案

    尝试将 BuildTestEnvironment.javasrc.test.java._tools 移动到 src.main.java._tools即您的类(class)将是src.main.java._tools.BuildTestEnvironment
    我尝试运行您提供的场景。它像你说的那样失败了,但是我将 java 文件从 test 移到 main .... 它 RAN :)

    干杯:)

    关于java - Maven 在测试阶段之前运行类 : exec-maven-plugin exec:java not executing class,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23659829/

    10-13 08:41
    查看更多