繁体   English   中英

使用“在解决方案中运行所有测试”时测试失败

[英]tests failing when “Run All Test in Solution” is used

我正在尝试让单元测试成功运行我的MVC 4 Web应用程序项目。

当我单独运行测试类时,所有的测试都通过了,当我在解决方案中运行所有测试时只有2/9次通过,我点击了Debug Checked Tests,当我再次点击它们时它们都通过了它们都通过了。

当我将项目检入TFS时,这个问题也被复制,我已经设置了项目构建的持续集成,运行测试并在完全相同的测试上失败。

我得到的错误是*“名为''的路线已经在路线集合中”

有没有人知道为什么会发生这种情况?

在每个类中,我有一个[TestInitialize]块,如下所示:

[TestInitialize]
public void Setup()
{
    var builder = new TestControllerBuilder();
    controller = new MyController();
    builder.InitializeController(controller);

    RouteConfig.RegisterRoutes(RouteTable.Routes);
}

当我没有包含TestControllerBuilder时,我在类中有类似的错误,可能是这段代码没有正确运行?

RouteTable.Routes是静态的,因此每个AppDomain只会初始化一次。

因此,每次运行测试时,您实际上都在尝试重新注册相同的路径。

将路径注册移动到AssemblyInitialize属性可能会更好,因此它只会在整个测试运行开始时运行一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM