【问题标题】:InteliJ Maven unit test execution classpathIntelliJ Maven 单元测试执行类路径
【发布时间】:2019-02-01 14:08:17
【问题描述】:

我正在使用 InteliJ 开发 maven 项目。典型的场景是我执行:

mvn clean install 

构建我的模块。 mvn 将 src/java/main 和 src/java/test 分别编译成 target/classes 和 target/test-classes。我还注意到目标/类类正在被复制到目标/测试类中。

什么是我的痛苦 - 当我修改 src/main/java src 代码并从 InteliJ 运行 JUnit 测试时 - 它看不到修改后的代码。 src/main/java 被编译成目标/类,但没有被编译成目标/测试类。这种行为迫使我使用 mvn 重新编译所有(不是最好的效率......)。我正在寻找如何改进这一点的建议。可能的解决方案:

  1. 避免将目标/类复制到目标/测试类中——这可能仍然是必需的,所以听起来像是一个愚蠢的想法。但是如何控制这个过程呢?
  2. 配置 InteliJ 以编译类并最终将它们复制到目标/测试类中
  3. 更改类路径上的顺序 - 目前是目标/测试类和目标/类。让它们以相反的顺序排列也可以解决问题。这样做很热门?

【问题讨论】:

    标签: java maven junit classpath


    【解决方案1】:

    运行配置中似乎没有“构建”步骤。检查“运行/调试配置”中的“启动前”部分,如果缺少,请添加“构建”。

    【讨论】:

    • 如前所述,此配置是正确的 - InteliJ 正在重建,但未将类复制到目标/测试类中(新类放置在目标/类中)。第 2 点是修复它的可能性 - 如何将此“复制”步骤添加为标准“构建”步骤的一部分?
    • 很奇怪。 JUnit 运行配置中的“构建”步骤应该正是这样做的。我还建议检查项目结构 -> 模块 -> “你的模块” -> 路径中的“测试输出路径”值(应该类似于“/target/test-classes”,与“/target/classes”用于“输出路径”)
    猜你喜欢
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多