[英]Run NUnit tests in release mode
我有個問題。
#if DEBUG
ca.ConveyancingAttorneyID = "C0B68DC3-C396-4264-880B-1A699C53A8CE";
ca.ConveyancingFirmID = "C0B68DC3-C396-4264-880B-1A699C53A8CE";
#endif
在調試模式下運行時,我們對標識符進行硬編碼。 在發行版中,顯然是動態設置的。
現在,當涉及到對映射代碼進行單元測試時,我必須這樣做:(最初我只是測試了“發布案例”,然后在調試模式下總是失敗了)
#if RELEASE
Guid id = new Guid("1A92CE5A-D956-486B-9B65-0A3630EF0285");
#endif
#if DEBUG
Guid id = new Guid("C0B68DC3-C396-4264-880B-1A699C53A8CE");
#endif
這是不理想的。 而且必須記住(並提醒隊友)始終在發布中運行單元測試也很麻煩。 我們沒有持續的集成設置,因此測試僅在本地運行。
有沒有一種方法可以強制NUnit / Visual Studio Testrunner / Resharper Testrunner始終以發布模式運行測試? 還是有更好的方法來解決此問題,請記住,解決方案中這類“ #if DEBUG”代碼塊非常豐富。
如果必須運行Release,請使用參數/ config:Release
我不確定我們對您的項目的結構是否足夠了解,無法以適當的方式回答這個問題。 它基本上取決於您在哪里以及如何使用這些值。
理想情況下,您應該通過接口從某個地方獲取這些ID。 這樣一來,您就可以偽造並在該接口后面切換實現,從而可以在需要測試使用值的邏輯時返回硬編碼的偽值。
您可以設置配置選項,以指定是使用實際實現,還是設置虛擬數據提供程序以允許進行切換而無需重新編譯。
更新:由於上述內容並不是您對特定問題的真正答案,因此,這是另一種嘗試:在Resharper > Options > Tools > Unit Testing
,有一個選項Run tests from Resharper > Options > Tools > Unit Testing
您可以在其中指定要使用的文件夾,而不是默認項目輸出文件夾。
這可能需要很長時間,但是即使主項目構建配置設置為Debug,也可以配置VS將項目的Release版本構建到某個特定的文件夾,並參考該版本進行測試。
請記住,在使用參數(例如/ config:Xeon的答案中的版本)時,區分大小寫很重要,否則會產生誤導性錯誤:
Invalid : Path_to_your_file
File type is not supported error
(信譽不足,無法發表評論)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.