Maven在测试阶段之前运行类:exec-maven-plugin exec:java不执行类

 mobiledu2502872283 发布于 2023-01-15 10:41

我在Jenkins盒子上运行使用Maven构建的jUnit4测试.我的目标是在执行测试之前恢复测试数据库.

看起来像exec-maven-plugin是要走的路,但是我无法让它运行起来.有什么指针吗?虽然有很多例子,但mojo网站上的文档非常简洁.

我现在需要运行的课程住在:

MyProject.src.test.java._tools.BuildTestEnvironment.java

我的pom.xml包括:


    
        
            maven-compiler-plugin
            2.3.2
            
                1.6
                1.6
            
        
                    
            org.codehaus.mojo
            exec-maven-plugin
            1.3
            
                
                    build-test-environment
                    generate-test-resources            
                    
                        java            
                    
                
            
            
                src.test.java._tools.BuildTestEnvironment
            
        
    

在Jenkins运行,没有任何事情发生.如果我在本地运行它,我会

我尝试过的事情没有成功:

    在Jenkins中运行构建:没有任何事情发生.该项目构建并开始运行测试,但我的课程没有运行.

    在本地运行构建:与Jenkins中的结果相同.这并不奇怪.

    在本地运行generate-test-resources:ClassNotFoundException.即:

    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: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]添加到classpath:file:/C:/ workspace/VSP_UnitTest/target/classes/
[DEBUG]添加项目依赖项工件:joda-time到classpath
[DEBUG]添加项目依赖项工件:jt400到classpath
[DEBUG]添加项目依赖项工件:junit到classpath
[DEBUG]添加项目依赖项工件:hamcrest-core到classpath
[DEBUG]添加项目依赖项工件:jackson -core to classpath
[DEBUG]添加项目依赖项工件:jackson-databind到classpath
[DEBUG]添加项目依赖项工件:jackson-annotations到classpath
[DEBUG]添加项目依赖项工件:hamcrest-all到classpath
[DEBUG]添加项目依赖项工件:log4j-api到classpath
[DEBUG]添加项目依赖项工件:log4j-core到类路径
[DEBUG]加入线程Thread [test.java._tools.BuildTestEnvironment.main(),5,test.java._tools.BuildTestEnvironment]
[警告] java.lang.ClassNotFoundException:
java.net.URLClassLoader $ 1.run中的test.java._tools.BuildTestEnvironment(URLClassLoader.java:366)
java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)
. 在java.lang.ClassLoader.loadClass(ClassLoader.java:424)的
java.net.URLClassLoader.findClass(URLClassLoader.java:354)
上的security.AccessController.doPrivileged(Native Method),
位于java.lang.ClassLoader.loadClass(ClassLoader. java:357)
at org.codehaus.mojo.exec.ExecJavaMojo $ 1.run(ExecJavaMojo.java:281)
at at java.lang.Thread.run(Thread.java:724)
[INFO] --------------------------------- ---------------------------------------
[INFO] BUILD FAILURE
[INFO] --- -------------------------------------------------- -------------------
[INFO]总时间:2.602秒
[INFO]完成时间:2014-05-15T14:38:50-05:00
[INFO]决赛记忆:12M/152M
[INFO] ------------------------------------------ ------------------------------

Aurifier.. 9

我想留下这个评论来解决Rebzie的评论,但我没有声誉.

但是,您在主配置中有测试配置

Exec Maven插件支持更改类路径范围,以便您可以使用测试范围的资源,而无需将它们移出测试包,如下所示:


    src.test.java._tools.BuildTestEnvironment
    test

这提供了一个干净的解决方案,您的测试设置代码将保留在测试资源中.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有