在Intellij中,一个模块可能依赖于另一个模块的测试

时间:2012-06-08 18:07:32

标签: unit-testing module intellij-idea

我在Intellij中有一个多模块项目,我在一个子模块的测试源中有一堆黄瓜装置,我想在另一个子模块中重复使用。如果我添加另一个模块,作为依赖项,那么它的正常ouptut目录将添加到junit类路径但不会添加到其测试输出中。

是否有可能让intellij还导出模块测试目录并允许其他模块使用它们?

2 个答案:

答案 0 :(得分:3)

是的,你可以,但这并不简单。

所以你有 Module-A Module-B

Module-B 有一个TestClass可能会扩展AbstractClass或使用来自 Module-A

注意:这只适用于intellij,如果你使用的是maven或gradle,你需要检查一下这仍然可以构建好。

这是你需要做的。

  1. 转到项目结构...... (Ctrl+Alt+Shift+S - win/linux)
  2. 转到模块并查看模块-A 路径标签
  3. 记下测试输出路径或复制它。它可能是这样的:C:\dev\projects\myProject\moduleA\build\testclasses或类似的。
  4. 转到模块并选择 Module-B 并查看其依赖关系标签。
  5. 您可能已经在此处依赖 Module-A 进行编译,确定无误。点击 + 或输入(Alt+Insert)并添加新图书馆(选项2号)
  6. 在选择库屏幕上,选择新建库... 按钮。选择 Java 选项。
  7. 在弹出的对话框中转到上面C:\dev\projects\myProject\moduleA\build\testclasses的构建文件夹,然后点击确定。现在,您将在此处获得 Module-A 的课程。将其命名为适合Module-A Tests的内容,并将级别选项更改为模块库
  8. 点击 + 按钮(Alt+Insert)以添加来源。导航到测试src文件。 E.G。:C:\dev\projects\myProject\moduleA\src\test并添加此项,您现在也将添加一个来源。
    1. 点击确定,您将返回项目结构对话框。
    2. 现在,您将在依赖项中添加一个新库。将范围更改为测试
    3. 按底部的确定即可完成。您可能需要制作/清理项目。
  9. 现在您已经在模块之间链接了测试依赖项。

    如果您能想出更好的解决方案,请告诉我,但这是我发现的最简单方法。

答案 1 :(得分:1)

也许,但你应该通过自动构建来实现这一点,即在maven中,而不是在IDE中。如果您将maven模块的测试发布为单独的依赖项(我这样做),您可以将测试jar添加为另一个模块的dep。 IDEA当然会自动处理。

http://maven.apache.org/guides/mini/guide-attached-tests.html