我使用VS 2008進行單元測試。即使我的代碼調用Assert.Fail不會失敗測試?
Assert.Fail("some message");
Test passess ??
甚至
Assert.IsTrue(false);
這也通過測試。
這怎麼可能。我期待測試失敗。我想迫使它失敗。
請幫忙!
我使用VS 2008進行單元測試。即使我的代碼調用Assert.Fail不會失敗測試?
Assert.Fail("some message");
Test passess ??
甚至
Assert.IsTrue(false);
這也通過測試。
這怎麼可能。我期待測試失敗。我想迫使它失敗。
請幫忙!
您是否使用.NET內置的Assert類?如果是這樣,我懷疑TRACE
沒有定義。
如何定義跟蹤。 – 2010-08-24 04:28:27
也許你在捕捉測試代碼中的異常。 Assert類使用異常來使測試失敗,所以如果你正在捕獲它,測試就會通過。
請粘貼以獲得更準確的答案。
這也是我的猜測 - AssertFailedException FWIW – 2010-08-23 19:53:54
有時,當我點擊「運行測試」時,我已經看到測試引擎在發佈配置中構建,但是繼續對較早的Debug配置構建運行測試。我會在VS2008測試引擎中調用這個錯誤。無論如何,請嘗試清理您的調試和釋放文件夾並再次運行它。
如果不知道更多關於你在做什麼的事情,我不能確定,但聽起來你正在期待.NET類像NUnit類一樣工作 - 不能確定 - 但如果你是,那永遠不會工作。
.NET類只有在定義了Trace的情況下才起作用(查看Project Properties,單擊Build選項卡,然後單擊「Define TRACE constant」)。 - 但是對於單元測試來說這沒有什麼幫助 - 這些類不會拋出異常或者單元測試失敗......他們彈出消息框供訂閱「稍後調試」的口頭禪。
如果你想Assert.Fail失敗單元測試你需要一個單元測試框架,它提供了一個這樣做的類(和NUnit一樣)。請告訴我們您正在使用哪種測試框架(或者不使用?),如果您仍然遇到問題,我們可以幫助您多一點。
也許你正在測試的代碼非常好,它不會失敗!我希望我知道如何編寫這樣的代碼,我一直在吹捧單元測試。 – 2010-08-23 12:38:48
確保您正在執行Debug Build? – StuartLC 2010-08-23 12:38:48
查克諾里斯在行動:) – 2010-08-23 12:39:27