2011-11-17 247 views
3

当我写一个测试方法,I型“TESTM”,打标签,并奇迹般地看到:扩展Visual Studio的“代码段”功能

[TestMethod] 
public void MethodName() 
{ 

} 

当我键入它强调了方法名(不能显示在这里)作为我填写的“领域”。我相信你们都熟悉这种行为。

就个人而言,我喜欢为我的测试方法,如 Can_My_Method_Do_That_Thing,而不是CanMyMethodDoThatThing名。我发现它们更容易阅读,而且大多数时候它们都是真正的句子。

由于我不想进入的原因,我很难打字所有这些字符,我希望能够使用空格键,并在名称空格自动替换时我点击“Enter”。

我听说Visual Studio是可扩展和可定制的,等等。它可扩展到足以执行此操作吗?

回答

7

您可以实现和使用自己的代码段和微软提供有关如何可以这样做一个非常好的指南:Walkthrough: Implementing Code Snippets

有一个快速看看如何在“TESTM”扩展(这是片段式)是“部分”实施的,您可以前往c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Test\目录并编辑testmethod.snippet文件。

我自己从未实现过这种“扩展”,但微软的Extending the Editor网站是如何实现这一目标的一个非常好的信息来源。这是你应该开始看的地方'。

+1

我认为整个问题不是片段,而是下划线。 – Mehrdad

+0

@Mehrdad我认为重点是在Visual Studio Editor中实现对基于_的名称的合理支持。要实现它,您很可能会使用代码片段,[智能标记](http://msdn.microsoft.com/en-us/library/ee334190.aspx),Highlights等扩展。所有这些在msdn页面上都有很好的描述。 – nowaq

0

另一种值得考虑的方法是使用外部工具重新映射键盘。例如,让AutoHotKey直接对testm [Tab]按键序列作出反应,并切换到它将空格映射到下划线的模式(或者在键入空格并添加下划线后立即删除每个空格)。同样,Enter键可以将其从该模式中再次切换出来。

1

我建议的最好的方法是查看编辑器的可扩展性并解决它。以下步骤是您可能需要执行的操作。

  1. 将一个键映射到您的“未完成”行为。
  2. 使用编辑器扩展点,您可以访问“选定”文本并对其进行处理。
  3. 最后替换它。

一个建议。虽然学习曲线可能会有点高,不得不通过MEF和类似的东西。但它值得。

2

如果您安装CodeRush Xpress,那么您不仅可以获得一些很棒的免费生产力和重构工具,还可以为CodeRush Xpress提供open source community插件。

我发现this plugin(几乎)正是你想要的。

需要注意的是,它是为NUnit而不是MSTest开发的,因此您将获得[Test]属性而不是[TestMethod]属性。由于这是开源的,因此根据需求修改代码应该相当容易。

相关问题