2011-11-17 26 views
5

即即將執行一次ClassCleanup屬性的方法立即經過測試類中的所有測試? (如NUnit中的TestFixtureTearDown)。任何解決方法?是否可以在MSTest/VS單元測試中使用確定性ClassCleanup?

在TestInitialize和TestCleanup中嵌入這個沉重的設置/拆卸的替代方法只會提高測試執行時間。

我在過去的一週裏比較了兩者。 (這是我發現的NUnit vs MSTest,不要有很多的MSTest的飛行時間,所以如果我犯了一個錯誤,請隨意張貼更正的意見..)

這個特殊的項目是一個攪局者就我而言。閱讀博客文章的第一部分,以防您想了解更多詳情。

+0

你的意思是NUnit的在第二行paranthesis? -xUnit通過使用Dispose工作 –

+0

我的意思是xUnit系列;但爲了避免與xUnit.net混淆而修復 – Gishu

回答

0

根據MSDN ClassCleanup如下運行:

對於類

ClassInitialize和ClassCleanup被稱爲正確的類加載 和類卸載前右後。

正如我讀到的那樣,這意味着班上的考試已經開始了。

+0

在vs2010頁面添加了社區註釋。看看問題中鏈接的帖子的第一部分。 MSDN頁面沒有說的是,「類清理是在未來的某個時間點作爲批處理運行的。其他測試類可能會在最後一次測試和Class#1的ClassCleanup之間執行。「 – Gishu

+0

好吧,沒有意識到這一點。我的回答不好,然後:-) –

1

ClassInitialize和ClassCleanup會在您的類被加載並且在您的類被卸載之前立即調用。

確實如此,但在所有測試完成運行後,類都會被批量卸載。

E.g.

ClassInitialize1
TestInitialize1
TestMethod11
TestCleanup1
TestInitialize1
TestMethod12
TestCleanup1
ClassInitialize2
TestInitialize2
TestMethod21
TestCleanup2
TestInitialize2
TestMethod22
TestCleanup2
TestInitialize2
TestMethod23
TestCleanup2
ClassCleanup1
ClassCleanup2

相關問題