c# - test教學 - visual studio unit testing framework




標有TestInitialize和TestCleanup的類未執行 (2)

我一直在努力爭取這個,希望它會幫助別人。

在使用MsTest創建單元測試時,我發現我在每個測試中重複相同的代碼,並找到了幾個方便的屬性( TestInitializeTestCleanupClassInitializeClassCleanup )。

據推測,當您使用這些屬性之一標記方法時,它應該自動執行(在每次測試之前,在每次測試之後,在所有測試之前,以及在所有測試之後)。 令人沮喪的是,這沒有發生,我的測試失敗了。 如果從標有TestMethod屬性的類中直接調用這些方法,則測試成功。 顯然他們不是自己執行的。

以下是我使用的一些示例代碼:

[TestInitialize()]
private void Setup()
{
    _factory = new Factory();
    _factory.Start();
}

那為什麼不執行?


TestInitialize和TestCleanup在所有測試之前和之後運行,而不是在每個測試之前和之後運行。

這是錯誤的,請參閱此鏈接: http://social.msdn.microsoft.com/Forums/en-US/vststest/thread/85fb6549-cbaa-4dbf-bc3c-ddf1e4651bcfhttp://social.msdn.microsoft.com/Forums/en-US/vststest/thread/85fb6549-cbaa-4dbf-bc3c-ddf1e4651bcf

另請參見MSDN

http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.classinitializeattribute.aspx

示例代碼顯示瞭如何使用TestInitialize,ClassInitialize和AssemblyInitialize。


我也遇到了問題 - 由於我對如何調用方法的誤解 - 解決了這個問題:讓你的測試繼承自包含TestInitialize和TestCleanup方法的類。





vs-unit-testing-framework