我继承了一个带有 100 多个测试的遗留项目,并且在 pom.xml 中定义了依赖项。
当我从命令行执行 mvn clean install 时,所有测试都会运行,但是当我尝试从 Intellij 中以调试模式执行这些测试之一时,我收到以下错误。
java.lang.NoClassDefFoundError:无法初始化类
尝试从 ide 以调试模式运行测试时,如何让 intellij 识别这些依赖项?
我继承了一个带有 100 多个测试的遗留项目,并且在 pom.xml 中定义了依赖项。
当我从命令行执行 mvn clean install 时,所有测试都会运行,但是当我尝试从 Intellij 中以调试模式执行这些测试之一时,我收到以下错误。
java.lang.NoClassDefFoundError:无法初始化类
尝试从 ide 以调试模式运行测试时,如何让 intellij 识别这些依赖项?
我设法通过简单地将运行配置中的工作目录位置更改为指向正确的类路径位置来解决这个问题。默认位置取自父项目。
如果能够从 IntelliJ 中调试测试,那将非常方便。我在我的大型项目中遇到了类似的问题,并找到了解决方法。
当希望调试测试时,我经常发现使用这样的远程调试会话很有用:
mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" -Dtest=com.autofunk.TheFunkImplTest test -DfailIfNoTests=false
然后,您可以使用 IntelliJ 中端口 8000 上的远程调试会话附加到上述内容。
因此,在调试测试时,我首先检查 Intellij 中的简单调试是否有效。如果没有,我运行上面的,然后使用调试配置附加到它,如下所示:
IntelliJ 在没有 mvn 命令的情况下执行单元测试。
IntelliJ 插件:MvnRunner
您可以使用 IntelliJ View - Tool Windows - Maven Projects 中的 maven 项目窗口运行测试
然后在您要测试的项目或模块下打开生命周期目标并单击测试。
这将运行当前配置的测试目标。现在报告已登录到目标目录
我使用 https://github.com/destin/maven-test-support-plugin 查看测试结果。
从项目窗口安装插件后,您可以访问此屏幕,再次右键单击项目根目录并选择“显示测试结果”(应该在 maven 图标下方)
祝你好运