【发布时间】:2021-05-18 19:11:43
【问题描述】:
在我最近的角色中,我从 C 过渡到 Java。我们的项目具有 Apache Maven 制定的标准 java 项目结构。我可以毫无问题地从 Intellij 运行 Junit 测试。
但我很好奇跨 /src/main/ 分布的应用程序逻辑如何提供给 /src/test 中的测试逻辑。
单元测试框架是否对此负责?还是构建工具会创建一个临时 jar,其中包含测试类以及由它们各自的包结构管理的应用程序类?
感谢您的回复!
【问题讨论】:
-
谷歌“类路径”。 tl;dr 是类路径是 JVM 将查找要加载的类的位置列表。 Maven 会将生产代码 (
src/main/java) 编译到一个位置,并将测试代码 (src/test/java) 编译到另一个位置,当您运行测试时,maven 测试插件会将这两个目标放到类路径中,从而生成生产代码和测试代码无障碍。还有更多细节和细微差别,但这是基本思想。