2011-11-17 68 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

相关问题