【问题标题】:IntelliJ test classpath: Different when running class vs packageIntelliJ 测试类路径:运行类与包时不同
【发布时间】:2016-07-17 21:58:01
【问题描述】:

我有一个多模块项目,它有一个专门用于运行集成测试的测试模块。 我注意到在运行单个类与运行所有相同的包时测试类路径发生了显着变化。

通过检查,我可以看到另一个项目模块(以及它的依赖项)被添加到类路径中,它不是测试模块的依赖项(直接或传递) - 它实际上是一个不依赖于的数据库迁移库还有什么。

谁能解释为什么在同一个包中运行单个类而不是所有 3 个类时测试类路径会发生变化?

背景: 智能 14.1.3 通过 Maven 运行时测试通过

【问题讨论】:

  • 你是如何为 2 次运行配置 classpaths 的?
  • @Morfic 两者都使用默认设置。运行单个测试时,默认为模块类路径,运行包时该选项显示为灰色且不可修改。
  • @Morfic 感谢您的文档链接。这让我进行了实验,最终我解决了它。因此,运行包时的默认测试类路径是一切。在从特定包运行测试时,我必须创建一个配置来为特定模块显式设置类路径。感谢您朝正确的方向轻推。添加答案以获取您的积分!
  • 没问题,很高兴为您提供帮助。尽管我认为您应该像完成大部分工作一样发布并接受自己的答案:-)

标签: java maven intellij-idea


【解决方案1】:

可以在Run... 运行配置部分看到差异。

当为包使用Run... 选项时,Test kind 默认为 All in Package,但Package 不默认为调用Run... 时使用的包。默认的Use classpath of module 是灰色的(在你选择Package 之前会一直保持这种状态),所以看起来所有模块的类路径都被使用了。

Use classpath of module 是我在运行包中的所有测试时需要更正类路径的选项。

【讨论】:

    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2012-12-09
    • 2013-01-24
    • 2014-04-02
    相关资源
    最近更新 更多