Visual studio 2010 将MVCContrib.TestHelpers与MsTest一起使用-有没有办法获得更好的失败消息?

Visual studio 2010 将MVCContrib.TestHelpers与MsTest一起使用-有没有办法获得更好的失败消息?,visual-studio-2010,nunit,mstest,mvccontrib-testhelper,Visual Studio 2010,Nunit,Mstest,Mvccontrib Testhelper,我刚刚开始使用MVCContrib,我非常喜欢它为各种测试场景添加的语法糖。例如,我刚刚写了这个断言: "~/".Route().ShouldMapTo<SpotController>(c => c.List()); “~/”.Route().ShouldMapTo(c=>c.List()); 太棒了!嗯,几乎 正如我所希望的,我没有看到测试失败的实际原因(我在MVC应用程序中没有做任何更改,因此应该路由到HomeController.Index()),而是得到了测试执行期

我刚刚开始使用MVCContrib,我非常喜欢它为各种测试场景添加的语法糖。例如,我刚刚写了这个断言:

"~/".Route().ShouldMapTo<SpotController>(c => c.List());
“~/”.Route().ShouldMapTo(c=>c.List());
太棒了!嗯,几乎

正如我所希望的,我没有看到测试失败的实际原因(我在MVC应用程序中没有做任何更改,因此应该路由到
HomeController.Index()
),而是得到了测试执行期间引发异常的一般消息。这是我调试时发现的,因为MVCContrib中的测试扩展方法正确地(?)抛出了一个
AssertionException

我假设这是NUnit类型的故障异常,而MsTest版本是
AssertFailedException
。由于NUnit版本(显然)不是从MsTest版本继承的,所以VS中的测试运行程序不会捕获异常并给我一个好消息

有没有办法让MsTest以与AssertFailedException类似的方式处理AssertOneException,而不必重新写入一半的MVCContrib.TestHelpers?

我确实有本地工作副本中的源代码,因此我可以在那里重新编写测试方法,以抛出MsTest异常,但这似乎是极端的杀伤力

更新:

这个问题也出现在大多数模拟框架中,所以现在我不想只使用NUnit的
AssertionException
,还想使用Moq的
VerificationException
以及其他可能的方法来解决这个问题。。。这是不可能的吗?

如果您使用的是xUnit.net,您可以很容易地编写一个自定义的运行程序来进行翻译(对不起!)@Ruben:事实上,这越来越让我转向NUnit,因为我似乎找不到任何好的方法来先查看异常消息。但知道这一点还是很好的。我同意这是一个好问题(上面的+1是我的)。我个人会跳过NUnit,转到xunit.net,这就是我要说的——它比NUnit有更好的可扩展性故事,当你因为这样的问题陷入困境时,这很重要。它的代码库真的很干净,并且将保持干净,因为它有两个有品味的自以为是的提交者,并且强烈意识到拒绝垃圾和重复的必要性和经过验证的记录。NUnit的runner代码库还很不干净。不过这只是我的意见@鲁本:xUnit框架的可扩展性是否足以让我使用一些使用NUnit进行测试的程序集,以及其他使用xUnit进行测试的程序集,然后在TD.NET中运行所有程序集并得到很好的错误?TD.NET可以很好地处理各种类型的混合—很难找到它所能做到的漏洞。然而,出于理智考虑,您希望在构建过程中尽可能少地使用测试运行程序(及其版本控制)。(因此,当我面对500个MSTest测试和30个NUnit测试时,我将它们移植到530个xUnit Facts中-这是一个使用CodeRush的简单端口,我一点也不后悔)如果你使用的是xUnit.net,你可以很容易地编写一个定制的运行程序来进行翻译(对不起!)@Ruben:这越来越让我转向NUnit了,实际上,因为我似乎找不到任何好的方法来首先查看异常消息。但知道这一点还是很好的。我同意这是一个好问题(上面的+1是我的)。我个人会跳过NUnit,转到xunit.net,这就是我要说的——它比NUnit有更好的可扩展性故事,当你因为这样的问题陷入困境时,这很重要。它的代码库真的很干净,并且将保持干净,因为它有两个有品味的自以为是的提交者,并且强烈意识到拒绝垃圾和重复的必要性和经过验证的记录。NUnit的runner代码库还很不干净。不过这只是我的意见@鲁本:xUnit框架的可扩展性是否足以让我使用一些使用NUnit进行测试的程序集,以及其他使用xUnit进行测试的程序集,然后在TD.NET中运行所有程序集并得到很好的错误?TD.NET可以很好地处理各种类型的混合—很难找到它所能做到的漏洞。然而,出于理智考虑,您希望在构建过程中尽可能少地使用测试运行程序(及其版本控制)。(因此,当我面对500个MSTest测试和30个NUnit测试时,我将它们移植到530个xUnit Facts中——这是一个使用CodeRush的简单端口,我一刻也不后悔)