与之前可以在此处找到的问题相关:
tests failing when "Run All Test in Solution" is used
测试方法:
[TestMethod]
public void AMAC_Route_Maps_to_AMACController()
{
"~/amac/".ShouldMapTo<AMACController>(action => action.Index());
}
路线:
routes.MapRoute(
name: "AMAC",
url: "amac/",
defaults: new { controller = "AMAC", action = "Index" }
);
返回错误:
测试方法MBS.Exec.Enquiry.MVC.Tests.AMACControllerTest.AMAC_Route_Maps_to_AMACController抛出异常:MvcContrib.TestHelper.AssertionException:URL与任何路径都不匹配
只有当我在解决方案中运行所有测试时才会抛出此错误,当我将测试与其传递的类隔离开来时。
作为一个例子,我有一个实际通过的类似控制器的测试方法,下面是测试方法的代码及其路径:
测试方法
[TestMethod]
public void HVM_Route_Maps_to_HVMController()
{
"~/hvm/".ShouldMapTo<HVMController>(action => action.Index());
}
路线:
routes.MapRoute(
name: "HVM",
url: "hvm/",
defaults: new { controller = "HVM", action = "Index" }
);
此测试不会产生错误。
答案 0 :(得分:0)
当我重构测试以将路由注册添加到[AssemblyInitialize]方法时,我忘记从其中一个单元测试类中删除[TestCleanup]方法,导致路由重新注册。
删除后,所有测试都通过了。