Maven:如何管理测试代码模块依赖

时间:2021-06-21 11:43:01

标签: maven intellij-idea codenameone

我们已经通过迁移工具将一个 ant 项目(代号一)迁移到了一个 maven 项目。不幸的是,仍然存在问题。不知何故,测试源目录(通过 pom.xml 中的 testSourceDirectory 设置)成为错误模块的一部分(至少在 IntelliJ IDEA 的项目视图中如此显示)。因此测试源代码缺少必要的核心依赖项。核心代码(实际实现)在“common”模块中。即使测试代码位于(在 IntelliJ 中)“common”模块下,它本身也被标记为“cn1libs”模块的一部分。我们不知道 ide 或 maven 如何从 pom 配置中得出结论。

来自 pom 的片段:

<testSourceDirectory>${project.basedir}/common/src/test/java</testSourceDirectory>

test root in wrong module somehow

无法解决测试源中的依赖项

test sources problem

我们如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果有多个模块在其 pom 文件中引用该目录,有时 IntelliJ 会给您这样的错误标签。检查您的 cn1libs/pom.xml 文件并确保它没有在任何地方指定 <testSourceDirectory>。它的包装类型也应该是 pom

Codename One 项目设置为使用 Codename One 测试运行器进行单元测试。它使用自己的“测试”目标。您正在导入 junit 的 Test 类,除非您真的知道自己在做什么,否则在这里可能会出现问题。例如。 Codename One 测试运行程序将设置测试环境并在模拟环境中运行测试。 Junit 将直接运行它们。

但是,如果您需要添加测试依赖项,您应该能够将它们添加到 common/pom.xml 文件的 dependencies 部分,只需确保将依赖项范围设置为“测试”。