看起来当我做“移动”重构时,我的所有junit测试都留在它们原来的位置。通常我测试“包”可见类,所以如果SUT移动到另一个包中,它们就会变得不可见。
您是手动移动测试吗?
看起来当我做“移动”重构时,我的所有junit测试都留在它们原来的位置。通常我测试“包”可见类,所以如果SUT移动到另一个包中,它们就会变得不可见。
您是手动移动测试吗?
我有4个选项给你:
在左侧进入“Package”视图,选择两个文件,然后按F6。它应该将它们都移到正确的位置。
在重构之前暂时将类公开,并在之后切换回去。
尝试先移动测试。我记得这样可以避免破坏任何依赖关系。
有一个插件(我想它是toggleTest或unitTest - 我安装了两个),它会修补Move Refactor,以使测试也随之移动。效果很好。不幸的是,看起来这些可能无法与最新的IDEA一起使用。
你所描述的行为是完全正常的。
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
,但我想强调文件夹结构)。
希望我能帮到你!