我正在Jenkins Box上运行用Maven构建的jUnit4测试。我的目标是在执行测试之前恢复测试数据库。
看起来exec-maven-plugin是可行的,但我不能让它运行。有什么指示吗?虽然有很多例子,但是mojo站点上的doc非常薄。
我需要运行的类当前位于:
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>
</configurathtml" target="_blank">ion>
</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中的结果相同。没什么好惊讶的。
本地运行generate-test-resources:ClassNotFoundException。IE:
mvn exec:java generate-test-resources
java.lang.ClassNotFoundException:src.test.java._tools.buildTestEnvironment
将该类编译到一个jar中,并将其添加到我的POM中。
更新:
在阅读了@ppuskar的评论之后,我试着稍微移动一下我的buildxxx类。将其移动到src.main.java._tools.BuildTestEnvironment之后,我仍然会得到类似的消息。以下是我的构建日志,以防有所帮助:
[DEBUG]调用:test.java._tools.buildTestEnvironment.main()
[DEBUG]将排除插件依赖项。
[DEBUG]将包括项目依赖项。
[DEBUG]收集的项目工件[joda-time:jda-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-注释: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-api:jar:2.0-rc1:compile]
[DEBUG]收集的项目类路径[c:\workspace\vsp_unittest\target\classes]
[DEBUG]添加到类工件:joda-time to classpath
[DEBUG]添加项目依赖项工件:JT400to classpath
[DEBUG]添加项目依赖项工件:junit到类路径
[DEBUG]添加项目依赖项工件:hamcrest-core到类路径
[DEBUG]添加项目依赖项工件:jacks-core到类路径
[DEBUG]添加项目依赖项工件:jacks-databind到类路径
[DEBUG]添加项目依赖项工件:jacks-databind到类路径
[DEBUG]添加项目依赖项工件:jacks-adnotations到类路径
[DEBUG]添加项目依赖项工件:hamcrest-all到类路径
[DEBUG]添加项目依赖项工件
[DEBUG]加入thread thread[test.java._tools.buildTestEnvironment.main(),5,test.java._tools.buildTestEnvironment]
[WARNING]java.lang.ClassNotFoundException:test.java._tools.buildTestEnvironment
在java.net.URLClassLoader$1.run(URLClassLoader.java:366)
在java.net.URLClassLoader$1.runva.net.urlClassLoader.findClass(urlClassLoader.java:354)
at java.lang.classLoader.loadClass(classLoader.java:424)
at java.lang.classLoader.loadClass(classLoader.java:357)
at org.codehaus.mojo.exec.execJavaMojo$1.run(execJavaMojo:281)
at java.lang.thread.run(thread.java:724)
[INFO]-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我想把这作为一个评论来回应雷布齐的评论,但我没有这个名声。
但是在主配置中有测试配置
Exec Maven插件支持更改类路径范围,这样您就可以使用测试范围内的资源,而无需将它们移出测试包,如下所示:
<configuration>
<mainClass>src.test.java._tools.BuildTestEnvironment</mainClass>
<classpathScope>test</classpathScope>
</configuration>
这提供了一个干净的解决方案,其中测试设置代码保留在测试资源中。
问题内容: 我正在Jenkins盒子上运行用Maven构建的jUnit4测试。我的目标是在执行测试之前还原测试数据库。 看起来exec-maven-plugin是可行的方法,但我无法使其运行。有指针吗?尽管有很多示例,但mojo网站上的文档非常薄。 我目前需要参加的课程位于: MyProject.src.test.java._tools.BuildTestEnvironment.java 我的po
运行似乎surefire没有执行其测试目标(或者至少没有选择我在配置中包含的测试)。 这是一个多模块maven项目,目前全部在groovy中,其结构类似于以下内容: 我在pom中有以下surefire配置。xml: 但是,当我针对这个pom执行
我有一个Maven/SpringBoot2.3。3应用JUnit 5和Cucumber(v6.5.1)测试。 问题是,我可以通过Maven运行OK单元测试和集成测试,但它不运行Cucumber。 cucumber赛跑者: Cucumber Spring上下文配置: 步骤: 我在Maven pom中使用Surefire和故障保护。xml:https://github.com/danieldestro
你好,我正在尝试使用Maven运行一个JUnit测试。 [信息]没有要编译的内容-所有类都是最新的 [信息] [信息]--maven-surefire-plugin:2.10:test(default-test)@uitests-core-- 我不知道为什么它不能运行我的测试。请帮帮我。
我正在一个硒自动化项目中运行回归测试。测试是用 JUnit 5.5.1 编写的。没有 Surefire 或故障安全插件(测试不在 src/测试/java 下,它们位于 src/主/java 下,因为不是单元测试)。 问题是,当我使用.bat文件(执行mvn exec:java…)运行代码时,没有一个测试被执行,我不确定我的配置是否完全正确。在最坏的情况下,这是我使用的JUnit版本的一个bug(我
大家好,我实际上正在使用Jenkins和testlink(带有testlink插件)来实现测试自动化。 我谷歌了很多,但没有什么真正有用的,有人能帮我PLZ吗?