MSTest:TestInitialize方法似乎没有被执行

时间:2013-01-18 15:04:45

标签: mstest

这个“问题”是一个奇怪的MSTest行为的文档,我曾几次撞到我的脑袋,希望它对遇到同样问题的其他人有用。考虑以下测试:

[TestClass]
public class SomeTest {
    private List<int> _list;

    [TestInitialize]
    public void SetUp() {
        DoSomething();
        _list = new List<int>();
    }

    [TestMethod]
    public void SomeTestMethod() {
        _list.Add(42);
        ...
    }
}

运行它会在System.NullReferenceException: Object reference not set to an instance of an object.行生成_list.Add(42);。它看起来像SetUp(),虽然它具有正确的public void签名并且[TestInitialize]属性未被调用。发生了什么事?

1 个答案:

答案 0 :(得分:0)

在这种情况下,进一步调查显示DoSomething()正在抛出异常。由于我无法理解的原因,MSTest(至少从使用ReSharper的Visual Studio调用时)吞下[TestInitialize]方法抛出的异常,并继续使用测试方法,而不会使测试失败

(如果有人能解释这种行为的理由或如何关闭它,我将不胜感激。)