【问题标题】:Is it possible to have deterministic ClassCleanup in MSTest / VS Unit testing?在 MSTest / VS 单元测试中是否可以有确定性的 ClassCleanup?
【发布时间】:2012-01-06 17:12:06
【问题描述】:

即在测试类中的所有测试之后立即执行一次带有 ClassCleanup 属性的方法? (如 NUnit 中的 TestFixtureTearDown)。有什么解决方法吗?

在 TestInitialize 和 TestCleanup 中嵌入这种繁重的设置/拆卸的替代方案只会增加测试执行时间。

在过去的一周里,我一直在比较这两者。 (这是我找到的NUnit vs MSTest 。MSTest 没有太多的飞行时间,所以如果我犯了错误,请随时以 cmets 的身份发布更正..)

就我而言,这个特殊的项目是一个引人注目的项目。如果您想了解更多详细信息,请阅读博文的第一部分。

【问题讨论】:

  • 你的意思是第二行括号里的NUnit吗? -xUnit 通过使用 Dispose 工作
  • 我指的是 xUnit 系列;但无论如何都要修复以避免与 xUnit.net 混淆

标签: unit-testing tdd mstest


【解决方案1】:

ClassInitialize 和 ClassCleanup 在你的类被加载之后和你的类被卸载之前被调用。

是的,但在所有测试运行完成后,类会被批量卸载。

例如

类初始化1
测试初始化​​1
测试方法11
测试清理1
测试初始化​​1
测试方法12
测试清理1
类初始化2
测试初始化​​2
测试方法21
测试清理2
测试初始化​​2
测试方法22
测试清理2
测试初始化​​2
测试方法23
TestCleanup2
ClassCleanup1
ClassCleanup2

【讨论】:

    【解决方案2】:

    根据MSDNClassCleanup运行如下:

    ClassInitialize 和 ClassCleanup 在您的课程结束后立即调用 在你的类被卸载之前加载。

    当我读到它时,这意味着类中的测试已经运行。

    【讨论】:

    • 向 vs2010 页面添加了社区注释。看看问题中链接的帖子的第一部分。 MSDN 页面没有说的是“Class Cleanups 在将来某个时间点作为批处理运行。其他测试类可能会在最后一个测试和 Class#1 的 ClassCleanup 之间执行。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多