2014-03-02 33 views
0

在Visual Studio的最新版本中,可以通過用屬性標記測試來對單元測試進行分類。不管你使用的是MSTest還是NUnit,這個例子都是基於NUnit。重命名TestCategory

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

現在假設我在category 1約50的測試中,在多個文件傳播。 是否有一種白癡證明方式(*)將我的類別重命名爲更具描述性的內容?

(*):不是一個簡單的搜索和替換

的事情,我已經試過

search and replace

它的工作原理,但我不覺得舒服這樣做。

+0

這是最簡單的方法:)。 – jessehouwing

+0

由於屬性都是關於使用反射的,所以如果沒有基於反射的解決方案來解決這個問題的話,我會被詛咒的。 –

+0

解決方案將是一個Visual Studio宏或一個Roslyn插件,但這遠非簡單放在一起(而不是由於Visual Studio項目系統的固有複雜性而導致的白癡證明)。一個Resharper自定義重構或一個DevExpress DxCore插件也可能會訣竅。儘管如此,沒有什麼能夠擊敗搜索和替換框的簡單性。 – jessehouwing

回答

1

我認爲結論是,Visual Studio到目前爲止還沒有一種開箱即用的方法來做你想做的事情。一切都要做到,但沒有用戶界面或命令行或中間窗口來做到這一點。像Resharper,DevExpress CodeRush等其他工具提供的擴展性模型比Visual Studio更易於使用。 Roslyn是微軟的新編譯器框架,它基於它的編輯器將提供接近你未來想要的功能。

從這些選項,我想這ReSharper的"Search With pattern"特點是最接近你在找什麼,你甚至可以save your pattern as a quick-action for later re-use,這是很酷(所以這將是相當容易地創建一個「所有重命名」重構或快速行動詮釋他的正確的上下文。

Search with Pattern

以外,你可以使用Visual Commander寫宏做你以後在做什麼,編輯,並在解決方案中的所有文件都通過Visual Studio的可達對象模型

你可以看看Visual Studio的Roslyn to learn how this might be possible in a future version

+0

它看起來像Visual Commander更強大,但我用ReSharper的_Search with Pattern_簡單。 ReSharper發現了所有相關的測試,並沒有給我帶來任何誤報,並向我展示了每一行可能受到影響的代碼。儘管還有更多的解決方法,但我在足夠的座右銘中接受了這個答案。 –

1

這可能不會是正是你需要的,但是這是我如何處理重命名,當我不能完全肯定,如果我要重命名的所有找到實例:

  • 我把左手放在F3搜索搜索詞的下一個出現
  • 我把我的右手放在鼠標上,並全部更換這是替換下一個

然後我按F3,如果我不希望旁邊的按鈕替換當前找到的項目,或者我按下鼠標替換下一個BU如果我想要更換。

對於50個項目,我可能會使用上面的方法,更多的項目(或更多的類別重新命名),我也會尋找一個解決方案。

同時將範圍縮小到「當前文檔」或僅打開需要重命名的文件,並使用「當前打開的文檔」與所描述的方法配合良好。

+0

仍然不是白癡證明,但稍好一點。但它仍然需要很長時間。 –