我正在Jenkins盒子上运行用Maven构建的jUnit4测试。我的目标是在执行测试之前还原测试数据库。
看起来exec-maven-plugin是可行的方法,但我无法使其运行。有指针吗?尽管有很多示例,但mojo网站上的文档非常薄。
我目前需要参加的课程位于:
MyProject.src.test.java._tools.BuildTestEnvironment.java
我的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中运行构建:什么都没有发生。该项目将生成并开始运行测试,但是我的课没有运行。
在本地运行构建:与Jenkins相同的结果。毫不奇怪。
在本地运行generate-test-resources:ClassNotFoundException。即:
mvn exec:java generate-test-resources java.lang.ClassNotFoundException:src.test.java._tools.BuildTestEnvironment
更新:
阅读@ppuskar的评论后,我尝试将buildxxx类稍微移动一下。将其移至src.main.java._tools.BuildTestEnvironment之后,我仍然收到类似的消息。这是我的构建日志,以防万一:
[DEBUG]调用:test.java._tools.BuildTestEnvironment.main() [DEBUG]插件依赖项将被排除。 [DEBUG]将包括项目依赖项。 [DEBUG]收集的项目工件[joda-time:joda- time:jar:2.3:compile,net.sf.jt400:jt400:jar:6.7:compile,junit:junit:jar:4.11:compile,org.hamcrest:hamcrest -core:jar:1.3:compile,com.fasterxml.jackson.core:jackson- core:jar:2.3.0:compile,com.fasterxml.jackson.core:jackson- databind:jar:2.3.0:compile,com .fasterxml.jackson.core:jackson- annotations:jar:2.3.0:compile,org.hamcrest:hamcrest- all:jar:1.3:compile,org.apache.logging.log4j:log4j-api:jar:2.0-rc1 :compile,org.apache.logging.log4j:log4j-core:jar:2.0-rc1:compile] [DEBUG]收集的项目类路径[C:\ workspace \ VSP_UnitTest \ target \ classes] [DEBUG]添加到类路径:file:/ C:/ workspace / VSP_UnitTest / target / classes / [DEBUG]添加项目依赖项:joda-time到类路径 [DEBUG]添加项目依赖项:jt400到类路径 [DEBUG]添加项目依赖项目:将junit 添加到类路径[DEBUG]将项目依赖项目:hamcrest-core 添加到类路径[DEBUG]添加项目依赖项目:将jackson-core 添加到类路径[DEBUG]添加项目依赖项目:将jackson-databind 添加到类路径[DEBUG]添加项目依赖项目:杰克逊注释到类路径 [DEBUG]添加项目依赖项目:hamcrest-all到类路径 [DEBUG]添加项目依赖项目:log4j-api到类路径 [DEBUG]添加项目依赖工件:log4j-core到类路径 [DEBUG]在线程Thread [test.java._tools.BuildTestEnvironment.main(),5,test.java._tools.BuildTestEnvironment]上加入 [警告] java.lang。 ClassNotFoundException: java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)的 test.java._tools.BuildTestEnvironment java.security.AccessController.doPrivileged(http://java.net.URLClassLoader$1.run(URLClassLoader.java:355)本地方法) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在组织.codehaus.mojo.exec.ExecJavaMojo $ 1.run(ExecJavaMojo.java:281) 在java.lang.Thread.run(Thread.java:724)处 [信息] -------------------------------- [INFO]内置故障 [INFO]- -------------------------------------------------- [INFO]总时间:2.602 s [INFO]完成于:2014-05-15T14:38:50-05:00 [INFO]最终内存:12M / 152M [INFO] -----------------------------------------
[DEBUG]调用:test.java._tools.BuildTestEnvironment.main() [DEBUG]插件依赖项将被排除。 [DEBUG]将包括项目依赖项。 [DEBUG]收集的项目工件[joda-time:joda- time:jar:2.3:compile,net.sf.jt400:jt400:jar:6.7:compile,junit:junit:jar:4.11:compile,org.hamcrest:hamcrest -core:jar:1.3:compile,com.fasterxml.jackson.core:jackson- core:jar:2.3.0:compile,com.fasterxml.jackson.core:jackson- databind:jar:2.3.0:compile,com .fasterxml.jackson.core:jackson- annotations:jar:2.3.0:compile,org.hamcrest:hamcrest- all:jar:1.3:compile,org.apache.logging.log4j:log4j-api:jar:2.0-rc1 :compile,org.apache.logging.log4j:log4j-core:jar:2.0-rc1:compile] [DEBUG]收集的项目类路径[C:\ workspace \ VSP_UnitTest \ target \ classes] [DEBUG]添加到类路径:file:/ C:/ workspace / VSP_UnitTest / target / classes / [DEBUG]添加项目依赖项:joda-time到类路径 [DEBUG]添加项目依赖项:jt400到类路径 [DEBUG]添加项目依赖项目:将junit 添加到类路径[DEBUG]将项目依赖项目:hamcrest-core 添加到类路径[DEBUG]添加项目依赖项目:将jackson-core 添加到类路径[DEBUG]添加项目依赖项目:将jackson-databind 添加到类路径[DEBUG]添加项目依赖项目:杰克逊注释到类路径 [DEBUG]添加项目依赖项目:hamcrest-all到类路径 [DEBUG]添加项目依赖项目:log4j-api到类路径 [DEBUG]添加项目依赖工件:log4j-core到类路径 [DEBUG]在线程Thread [test.java._tools.BuildTestEnvironment.main(),5,test.java._tools.BuildTestEnvironment]上加入 [警告] java.lang。 ClassNotFoundException: java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)的 test.java._tools.BuildTestEnvironment
java.security.AccessController.doPrivileged(http://java.net.URLClassLoader$1.run(URLClassLoader.java:355)本地方法) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在组织.codehaus.mojo.exec.ExecJavaMojo $ 1.run(ExecJavaMojo.java:281) 在java.lang.Thread.run(Thread.java:724)处 [信息] --------------------------------
[INFO]内置故障 [INFO]- --------------------------------------------------
[INFO]总时间:2.602 s [INFO]完成于:2014-05-15T14:38:50-05:00 [INFO]最终内存:12M / 152M [INFO] -----------------------------------------
尝试BuildTestEnvironment.java从src.test.java._tools移至src.main.java._tools 即您的班级将是 src.main.java._tools.BuildTestEnvironment
BuildTestEnvironment.java
src.test.java._tools
src.main.java._tools
src.main.java._tools.BuildTestEnvironment
我尝试运行您提供的方案。它失败了,就像你说的,但是我将Java文件从测试中移到了主文件中……它是RAN :)
干杯:)