0

在最新版本的 Visual Studio 中,您可以通过使用属性标记测试来对单元测试进行分类。无论您使用的是 MSTest 还是 NUnit,都无关紧要,但此示例基于 NUnit。

[Test]
[Category("category 1")]
public void Null_IsNull()
{
    Assert.IsNull(null);
}

现在假设我有大约 50 个测试category 1,分布在多个文件中。是否有一种愚蠢的证明方法 (*) 可以将我的类别重命名为更具描述性的内容?

(*):不是简单的搜索和替换

我尝试过的事情

搜索和替换

它有效,但我觉得这样做不舒服。

4

2 回答 2

1

这可能不是您所需要的,但这就是我处理重命名的方式,当我不确定是否要重命名所有找到的实例时:

  • 我保持左手在 F3 上搜索下一个出现的搜索词
  • 我将右手放在鼠标和旁边的按钮上以替换所有替换下一个

然后,如果我不想替换当前找到的项目,我只需按 F3,或者如果我确实想替换,则在替换下一个按钮上按鼠标。

对于 50 个项目,我可能会使用上述方法,如果有更多项目(或要重命名的更多类别),我也会寻找解决方案。

此外,将范围缩小到“当前文档”或仅打开需要重命名的文件并使用“当前打开的文档”也适用于所描述的方法。

于 2014-03-02T15:26:19.413 回答
1

我认为结论是,到目前为止,Visual Studio 还没有一种开箱即用的方法来做你想做的事情。要做的一切都在那里,但没有 ui 或命令行或中间窗口来做。Resharper、DevExpress CodeRush 等其他工具提供了比 Visual Studio 本身更易于使用的可扩展模型。Roslyn,来自微软的新编译器框架和基于它的编辑器,将在未来提供接近你想要的功能。

从这些选项中,我认为 Resharper 的“使用模式搜索”功能最接近您正在寻找的功能,您甚至可以将您的模式保存为快速操作以供以后重复使用,这非常酷(所以它会在正确的上下文中创建“重命名所有”重构或快速操作相当容易。

用图案搜索

除此之外,您可以使用Visual Commander并编写一个宏来做您所追求的。解决方案中的编辑器和所有文件都可以通过 Visual Studio 对象模型访问。

您可以查看Roslyn 以了解如何在未来版本的 Visual Studio 中实现这一点。

于 2014-03-05T12:40:04.890 回答