如何在大型 TFS 管理的 Visual Studio 项目中批量重构 class / cs 文件名

How to bulk refactor class / cs file names in a large TFS managed Visual Studio project

我目前在一个整体解决方案中工作,该解决方案是几个较小项目的集合体,也是许多开发人员努力的结果。然而,这些努力之一并不是创建关于测试 类 命名实践的标准文档。因此,我有超过 1500 个单独的测试 类,它们可能具有 "Test"、"Tester" 或 "Tests".

的后缀

考虑到先前存在的 TFS 和项目文件结构,是否有一种好的方法可以将我们解决方案中的所有 *[Test|Tester].cs 文件批量重命名为 *Tests.cs?

使用本地工作区和您选择的批量重命名工具。它不必在 Visual Studio 内。本地工作区将允许通过任何工具对项目结构进行更改,并且仍然 "noticed" 未决更改 window 或 tf.exe.

当然,您仍然需要更新 *.*proj 文件,以考虑到文件已重命名。

似乎对我有用的解决方案是在我的解决方案中跨目标测试项目通过正则表达式执行查找和替换。

在标准的 Visual Studio 查找和替换对话框中

我搜索了 public\W+class\W+([a-zA-Z0-9-_]+)Test(er)?\b

并替换为 public class Tests

的捕获组

在所有匹配 *Test.cs;*Tester.cs

的文件中

重要的是,出于我不知道的原因,如果我不检查 "Keep modified files open after Replace All",查找和替换将失败

例如:

查找和替换操作完成后,我在测试包上使用了 Resharper 的 Move Types Into Matching Files 重构功能,以便更新 TFS 和各种项目文件中的引用。