人們如何爲Visual Studio設置他們的項目,以及如何引用可測試的應用程序?爲nUnit測試設置Visual Studio項目的最佳實踐
現在我已經添加了一個單獨的項目,爲我的解決方案創建了一個.dll文件,其中包含所有測試用例和參考文件nunit.framework,它也從VS生成的Debug /文件夾中引用主.exe文件輸出。
但是我不知道這是個好主意 - 還是最佳實踐是什麼,任何人都想分享他們的實踐?
人們如何爲Visual Studio設置他們的項目,以及如何引用可測試的應用程序?爲nUnit測試設置Visual Studio項目的最佳實踐
現在我已經添加了一個單獨的項目,爲我的解決方案創建了一個.dll文件,其中包含所有測試用例和參考文件nunit.framework,它也從VS生成的Debug /文件夾中引用主.exe文件輸出。
但是我不知道這是個好主意 - 還是最佳實踐是什麼,任何人都想分享他們的實踐?
對我來說這聽起來很不錯 - 你可以在沒有測試程序集和NUnit的情況下分發或部署你的應用程序,但仍然可以測試所有內容。非常標準的做法。
在項目中使用它們時,我已經對所有測試使用了單獨的文件夾。然後,如果您選擇執行實際構建,則可以輕鬆地刪除該文件夾。
我也已經完成了你所說的一個單獨的項目。我認爲這很好。
通常情況下,我有一個解決方案,其中包含許多未在該主要解決方案中進行任何單元測試的項目 - 這是在發佈模式下爲真正構建構建的解決方案。
對於一個特定的項目,我有一個單獨的解決方案,其中包含我想單元測試的項目(以及任何相關的項目)和一個MyProjectName.UnitTests項目,該項目包含該項目的所有單元測試。然後,這些單元測試項目將在持續集成機器中進行配置,以便在調試模式下進行構建,然後運行測試。
適合我。
假設測試項目與被測項目在同一個解決方案中,一個小的改進可能是添加一個對測試項目的引用,而不是添加到Debug文件夾中的二進制文件。
除了這裏提到的內容之外,我還經常使用InternalsVisibleTo程序集屬性來使我測試的程序集的內部類可以對測試程序集可見,也就是說它們也可以直接進行測試。
根據您選擇的隔離框架,您可能還需要使被測程序集的內部對隔離框架組件可見,以便能夠模擬/存根某些內部行爲。
我認爲沒有任何錯誤提供包含代碼的dll,證明即使是生產環境中的dll仍然可以在已建立的參數內工作:)。如果出現奇怪的錯誤,您仍然可以使用發行版DLL運行單元測試,並查看是否有異常情況發生。正因爲如此,並且我不喜歡在解決方案中擁有兩倍的項目數量,所以我更願意在每個項目中添加所有單元測試代碼的測試文件夾。簡單而有效。
問候,
Sebastiaan