如何在MSTest中的测试之间保留变量?

And*_*rey 11 unit-testing mstest visual-studio

我正在使用MSTest(VS2008),我需要在测试之间保持变量.但是,变量在每次测试之间重新初始化.

根据这个答案中提到的第三点,

MSTest总是为每个正在执行的测试方法实例化一个新的测试类实例.

有没有一种直接的方法来保持测试之间的变量值,或以某种方式抑制这种行为?

chu*_*e x 12

使用静态成员变量:

static int _test = 0;

[TestMethod]
public void __Test1()
{
    _test += 1;
    Assert.IsTrue(_test == 1);
}

[TestMethod]
public void __Test2()
{
    _test += 1;
    Assert.IsTrue(_test == 2);
}
Run Code Online (Sandbox Code Playgroud)

  • 技术上正确,但断言_test == 2是一个非常糟糕的例子.a)单独运行时失败b)没有保证测试按特定顺序运行c)在比较值时应使用Assert.AreEqual. (5认同)
  • @StefanSteinegger - 当然是有效的观点。重点绝对应该放在使用静态变量作为实现OP所要求的方式。 (2认同)