簡體   English   中英

運行單元測試后避免完整的解決方案構建

[英]Avoid complete solution building after run Unit Tests

我正在使用VS2013 Professional進行單元測試。 特別是我正在使用NUnit框架(NUnit TestAdapter for VS2013)。 我的問題是,當我運行測試時,VS開始構建解決方案中的所有項目。 目前,單元測試項目未引用任何解決方案項目。

如果我只是編寫一個單一的測試方法,如:

[Test]
public void SimpleTestMethod(){
    Assert.That("a", Is.EqualTo("a"));
}

單元測試項目在N項目的解決方案中,當我運行我的測試時,VS將構建所有N-1項目......在我的情況下,這種行為很無聊,因為它需要太多時間(解決方案包含許多項目)有些項目包含錯誤。

有沒有辦法在沒有完整的解決方案構建的情況下運行我的SimpleTestMethod()

將測試項目分解為僅引用解決方案項目子集的多個項目。

這也是很好的測試管理 - 為每個解決方案項目都有一個單獨的單元測試項目,而不是一個與其他任何東西有依賴關系的大型項目。 這有幾個好處:

  • 測試運行得更快
  • 隔離測試用例,尤其是配置設置要容易得多
  • 您可以將項目及其測試用例一起版本化

一個好的命名實踐是將測試項目命名為與目標項目相同的.Tests后綴。 您還可以創建名為“測試”的解決方案文件夾(不是真實文件夾),並在其中移動測試項目。

至於原因:測試運行器使用單元測試程序集及其依賴項來運行測試。 如果任何程序集的依賴項發生更改,則必須重建程序集和依賴項。 Visual Studio不知道外部工具將調用什么,因此它必須構建所有已更改的程序集及其依賴項。

如果構建失敗,則沒有有效的程序集供測試運行器使用,因此VS必須在運行器運行之前重建整個解決方案。 在這種情況下,顯而易見的解決方案是修復錯誤。

您可以使用一些權宜之計選項,直到您可以修復錯誤:

  • 暫時從構建配置中刪除損壞的項目
  • 拆分解決方案,以便您擁有可以構建和測試的解決方案

我也在很長一段時間內努力解決這個問題。 我實際上討厭自動構建過程,即使一切都成功了。

我開始通過命令行運行測試。 不需要構建過程。 您可以編寫自己的.bat文件並保留測試結果的日志。 可以添加大量命令行參數來自定義您要查找的內容。

https://msdn.microsoft.com/en-us/library/jj155796.aspx

暫無
暫無

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

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