似乎当我进行“移动”重构时,我所有的 junit 测试都放在了它的旧位置上。我经常测试“包”可见类,因此如果 SUT 移动到另一个包,它们就会变得不可见。
您是否手动移动测试?
似乎当我进行“移动”重构时,我所有的 junit 测试都放在了它的旧位置上。我经常测试“包”可见类,因此如果 SUT 移动到另一个包,它们就会变得不可见。
您是否手动移动测试?
我有 4 个选项供您选择:
转到左侧的“包”视图,选择两个文件,然后按 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
但我想加强对文件夹结构的关注。
我希望我能帮助你!