簡體   English   中英

Visual Studio TDD 設置

[英]Visual Studio TDD setup

我是一名剛接觸 TDD 的 C# 開發人員,願意嘗試這種開發方法。

我當前的設置是 Visual Studio 2010 + Resharper(運行單元測試非常方便 - 設置單元測試 Session 並且有運行和調試測試按鈕)。

不過,我覺得可能有一些方法可以進一步加速 TDD(例如:保存測試文件時自動運行其中的測試)。

那么,使用 Visual Studio 的 TDD 專家——您能分享一些關於如何使 TDD 過程更有效率的技巧嗎?

工具

我通常將鍵盤快捷鍵綁定到 Context Run。 您可以通過點擊“工具”、“選項”在 Visual Studio 的選項中執行此操作,然后在“環境 -> 鍵盤”下找到“ReSharper.ReSharper_ReSharper_UnitTest_RunContext”。 我相信 Resharper 6 會為其分配一個鍵盤快捷鍵Ctrl + TR 我通常總是給它分配Alt + ; .

這將在 context 中運行單元測試。 因此,如果您的 cursor 在您剛剛完成編寫的測試中; 該測試開始運行。 如果 cursor 在測試 Class / 測試夾具內; 運行。

您還可以制作一些 R#模板 我通常制作一個名為Test的模板,如下所示:

[Test] //NUnit Change attribute to [TestMethod] if MSTest.
public void $NAME$()
{
    $END$
}

我更喜歡 R# 模板而不是 Visual Studio 代碼片段,因為您可以制作與解決方案文件一起存儲在 XML 文件中的“解決方案”級別模板。 因此,當您簽入時; 您的所有同事也都可以訪問模板; 甚至您來自另一個工作站。

這樣你就可以在沒有所有樣板文件的情況下繼續添加測試。 您甚至可以為整個燈具制作文件模板。

讓它流暢運行的真正訣竅是學習所有的鍵盤快捷鍵。 一旦你了解它們並掌握它們; 你的雙手不假思索地開始做。 添加/修改測試,您將開始自動按下上下文運行命令(無論您使用什么命令),甚至無需思考。

持續集成

另一個不相關的工具; 但是每個 TDDer 都應該熟悉的非常強大的是持續集成 (CI) 服務器。 這將允許您在簽入源代碼控制時運行測試。 最終,足夠大的項目將獲得 1000 套測試。 自己一直運行它們變得不切實際。 CI 服務器,如TeamCity ,會在您簽入時在服務器上運行您的測試。然后它會在完成后報告所有損壞的內容; 這樣您就可以在它運行其他測試時繼續工作。 那些你可能沒想到自己破產的人,但確實做到了。 還有其他一些不錯的免費提供; 哈德遜 編輯:正如彼得在評論中指出的那樣; CruiseControl.NET 是一個開源的 CI 服務器,已經存在了一段時間。 絕對值得一試。

我的典型指導方針是運行我認為相關的測試。 我使用具有[Category]屬性的 NUnit。 我運行我認為受影響的所有類別; 並讓 CI 服務器負責 rest。

編碼紀律

測試也是代碼。 它們需要重構; 並保持。 我見過很多人放棄測試,因為他們最終接受了意大利面條測試。 讓你的單元測試集中在一個小的、單一的單元上。 當測試變得脆弱時,它會開始減慢您和您的團隊的速度。 一般來說,無需過多介紹; 遵循SOLID 原則有助於測試。

您可能希望使用一些代碼片段進行測試。

http://www.codeproject.com/KB/dotnet/UnitTestCodeSnips.aspx

與 R# 可能存在一些沖突。

保持低構建時間。 您將需要經常運行測試。 這是我做的幾件事。

  1. 注意會減慢速度的預構建事件
  2. 確保您只根據需要構建項目。 在 Visual Studio 2010 中,檢查工具 - 選項 - 項目和解決方案 - 構建和運行 - 僅在運行時構建啟動項目和依賴項
  3. 確保保持測試快速運行。 單元測試不應該做太多事情。 在當前機器上每秒運行幾十到幾百次應該是可能的。
  4. 拆分單元測試和集成測試。 更頻繁地運行單元測試。 當然,在提交到共享版本控制系統之前運行所有測試。

我發現設置 NUnit 以在重新加載時自動運行測試的技巧非常漂亮。

Tools > Settings > Test Loader (tree) > Assembly Reload > Re-run last tests run

這將構建和運行測試壓縮為一個步驟。

工具只會讓你在一定程度上更快……除此之外,真正的提升來自於對你的 TDD 方法的反思。 閱讀、實踐、反思和適應。

我的個人補充

  • 跟蹤 TDD 節奏(Red-Green-Refactor)
  • 跟蹤在損壞的構建中花費的時間 state(編譯/測試錯誤)
  • 在 IDE 中對構建運行測試並查看結果
  • 在 IDE 中獲取故障跟蹤

將前三個作為 VS 擴展的一部分完成...... WIP。

更新:這是未說明的,但是...簡化所有日常工作。 例如,使用工具重構,使用代碼模板/片段作為頻率使用的代碼模式,與您的 IDE 合二為一(掌握所有頻率使用操作的鍵盤快捷鍵,將擊鍵綁定到沒有的操作)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM