似乎当我进行“移动”重构时,我所有的junit测试都放在它原来的地方。我经常测试“包”可见类,因此如果SUT移动到另一个包,它们将变得不可见。
你手动移动测试吗?
答案 0 :(得分:3)
我有4个选项:
转到左侧的“打包”视图,选择这两个文件,然后按F6。它应该将它们移动到正确的位置。
在您执行重构之前暂时将该类公开,然后再切换回来。
首先尝试移动测试。我似乎记得避免破坏任何依赖。
有一个插件(我认为它是toggleTest或unitTest - 我已经安装了它们)修补了Move Refactor也带来了测试。工作得很好。不幸的是,看起来这些可能不适用于最新的IDEA。
答案 1 :(得分:0)
您描述的行为完全正常。
src/package1/A.java
test/package1/ATest.java
在ATest.java
import package1.A;
。{。}
重构后,它看起来像这样:
src/package2/A.java
test/package1/ATest.java
测试代码保持原样。您没有移动测试代码,而是移动了源代码。它不应该影响任何其他文件夹(例如在您的示例中)
ATest.java
中的引用现在必须为import package2.A;
。否则,重构就出错了。
尽管如此,您的测试应该可以正常工作,即使它们位于不同的目录中。那是因为重构方法改变了导入。
如果要清理文件夹结构,则必须手动将包test/package1
重命名为test/package2
(我知道,包是package1
和package2
但是我想加强对文件夹结构的关注。
我希望我能帮到你!