我在 Intellij 中有一个多模块项目,我在一个子模块的测试源中有一堆黄瓜装置,我想在另一个子模块中重用它们。如果我添加另一个模块作为依赖项,那么它的正常输出目录会添加到 junit 类路径中,但不会添加到它的测试输出中。
是否可以让 intellij 也导出模块测试目录并允许其他模块使用它们?
我在 Intellij 中有一个多模块项目,我在一个子模块的测试源中有一堆黄瓜装置,我想在另一个子模块中重用它们。如果我添加另一个模块作为依赖项,那么它的正常输出目录会添加到 junit 类路径中,但不会添加到它的测试输出中。
是否可以让 intellij 也导出模块测试目录并允许其他模块使用它们?
是的,你可以,但这并不简单。
所以你有Module-A和Module-B。
Module-B有一个TestClass
可能扩展 AbstractClass 或使用Module-A 中的一些静态助手的
注意:这仅适用于 intellij,如果您使用的是 maven 或 gradle,则需要检查它是否仍然可以构建。
这是您需要做的。
(Ctrl+Alt+Shift+S - win/linux)
C:\dev\projects\myProject\moduleA\build\testclasses
或类似的。(Alt+Insert)
并添加一个新库(选项中的第 2 个)C:\dev\projects\myProject\moduleA\build\testclasses
然后单击OK。您现在将在此处获得Module-A的类。将其命名为合适的名称并将Level选项Module-A Tests
更改为Module Library。(Alt+Insert)
也可以添加源。导航到测试 src 文件。EG:C:\dev\projects\myProject\moduleA\src\test
并添加它,您现在也将添加一个 Sources。
现在您已经在模块之间链接了测试依赖项。
如果您能想到更好的解决方案,请告诉我,但这是我发现的最简单的方法。
也许,但你应该通过你的自动构建来做到这一点,即在 Maven 中,而不是你的 IDE。如果您将 maven 模块的测试作为单独的依赖项发布(我会这样做),则可以将测试 jar 添加为另一个模块的 dep。IDEA 当然会自动处理这个问题。
http://maven.apache.org/guides/mini/guide-attached-tests.html