c# – ExpectedExceptionAttribute在MSTest中不起作用

前端之家收集整理的这篇文章主要介绍了c# – ExpectedExceptionAttribute在MSTest中不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这很奇怪,但ExpectedExceptionAttribute突然之前退出了我的工作.不确定出了什么问题.我正在和VS 2010和VS 2005并排运行.它在VS 2010中不起作用.这个测试应该通过,但它失败了:
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void Test_Exception()
{
    throw new ArgumentNullException("test");
}

有任何想法吗?这真的是sux.

解决方法

不要复活一个死去的线程,但是当我突然发生这种情况时,我遇到了这个,以防它可以帮助别人.我终于找到了问题所在,这可能与Jon发现的内容有关.只有在项目被识别为TestProject时,ExpectedException属性才会起作用. (不仅仅是.Net程序集)

卸载项目,编辑csproj文件并检查以下设置是否存在:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

(假设VS2010项目)
重新加载项目并重建. ExpectedException测试现在应该通过.

我们在将测试从NUnit标准化为MSTest(谢谢TFS CI Build)时遇到了这个问题,并发现在替换Assert后,我们遇到了问题.Throws<>美丽的简约& [ExpectedException(Type)]废话的灵活性,(更不用说丢失[TestCase()]!)ExpectedException测试失败了.使用ExpectedException切换回NUnit,没问题,MSTest拒绝运行它.

毋庸置疑,在找到:http://blog.shawnewallace.com/2011/02/running-nunit-tests-in-tfs-2010.html之后,我将推动让NUnit回归

猜你在找的C#相关文章