2011-11-17 93 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]屬性。由於這是開源的,因此根據需求修改代碼應該相當容易。