在編寫單元測試時,您是否將測試放入要測試的程序集或單獨的測試程序集中?我已經在一個單獨的程序集中編寫了一個測試類的應用程序,以便於部署,因爲我可以排除程序集。有沒有人在你想測試的程序集內寫入測試,如果有的話,是什麼理由呢?將單元測試寫入程序集或單獨的程序集中?
回答
我有一個接口項目,測試項目,域項目和數據項目的解決方案。當我發佈我剛剛發佈界面,其中沒有參考測試,所以它不會被編譯進去。
編輯:底線是真的,你不希望它成爲你的最終版本的一部分。您可以通過使用單獨的項目/程序集在VS中自動實現此目的。但是你可以在同一個程序集中,但是如果你使用nant或者msbuild,那麼就不要編譯那個代碼。儘管有點雜亂,保持整潔,使用一個單獨的程序集:)
在不同的程序集中。否則,您的程序集將引用測試框架(例如Nunit.Framework.dll),並且需要將其安裝在客戶機器上,即使您裝運的是庫,並且希望客戶看到單元測試作爲示例或關於如何使用您提供的對象的說明,在生產組件中包含幾乎沒有什麼優勢。
這是廣泛爭論的網絡。
我們使用單獨的程序集和InternalsVisibleTo屬性來幫助測試程序集查看所有測試程序集的內部結構。我們傾向於爲我們正在測試的每個組件製作一個測試組件。
+1供參考到InternalsVisibleToAttribute。您應該添加鏈接:http://msdn.microsoft.com/en-us/library/0tke9fxk.aspx – 2010-04-28 15:55:31
我想說,當您想要在最終部署中包含任何測試代碼的唯一時間是測試代碼用於監視和控制應用程序時。
留在部署測試代碼:
- 醃的代碼沒有真正的優勢可言 - 沿着標記是不會被就地在所有使用的所有額外的代碼。
- 影響發佈 - 您是否發佈了新版本的完整應用程序。當你的改進僅在測試代碼中時,例如測試套件由於錯誤修復而延長。
- 您無法輕鬆地在另一個項目上重複使用測試框架 - 如果您始終發佈由測試代碼堵塞的應用程序,則任何後續項目都必須重用相同的測試代碼。否則,您就完成了應用程序A在應用程序的這些方面使用測試平臺v1.2的情況。這在所有應用程序中都是常見的,例如表示層或業務邏輯框架等。而應用程序。 B正在使用測試框架v1.1。 C被使用V1.2.1等
解耦的otherhand允許您:
- 輕鬆升級,並根據需要擴展的測試套件。
- 輕鬆地在多個項目中重複使用測試套件。
- 跨多個項目使用通用測試框架。
HTH
歡呼聲,
羅布
好處在'影響發佈'和'測試重用'(都與版本控制相關)。 – Fil 2017-03-11 18:01:29
你可以讓他們在溶液中分離組件和ILMerge他們後來進行調試,並沒有ILMerge他們釋放。
- 1. 如果單元測試在單獨的程序集中,如何測試框架?
- 2. 如何將相同項目單元測試分解爲單獨的程序集?
- 3. 如何將現有程序集轉換爲ms單元測試程序集?
- 4. 單獨程序集中的ASP.NET主頁
- 5. Maven - 單元測試中的單獨集成測試
- 6. 可以用3.5 MsTest單元測試程序集編寫測試嗎?
- 7. 單元測試在C#中籤署的程序集#
- 8. 在單元測試中調用單獨的Python程序
- 9. 在獨立應用程序中嵌入VSTS單元測試
- 10. 什麼時候單元測試加載相關的程序集?
- 11. 帶簽名程序集的c#單元測試
- 12. 單元測試帶App.Config的C#程序集返回異常
- 13. 單元測試使用程序集的方法
- 14. 儀器.NET程序集以捕獲單元測試
- 15. F#單元測試:nunit.framework程序集未引用錯誤
- 16. 單元測試失敗,說找不到'Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight'程序集
- 17. 你可以在C#中編寫一個單元測試程序集來測試用VB編寫的程序集嗎?
- 18. 將常量移動到單獨的程序集中
- 19. 如何編寫測試:Socket.io應用程序單元測試
- 20. Django測試:獨立的單元和集成測試Travis CI
- 21. 安裝程序的單元測試
- 22. C#單元測試集HttpRuntime.BinDirectory
- 23. 單元測試集合
- 24. 集成與單元測試
- 25. 未將SQLite程序集複製到輸出文件夾進行單元測試
- 26. 在很多單獨的線程中測試Django應用程序
- 27. 寫入程序集中的txt文件
- 28. 集成測試與單元測試
- 29. LightSwitch:我如何將業務邏輯放入單獨的程序集中?
- 30. 如何訪問另一個程序集中的類以進行單元測試?
有關此主題的更多有用信息:http://stackoverflow.com/questions/347156/do-you-put-unit-tests-in-same-project-or-another-project – Mats 2016-07-27 10:29:34