C# 单元测试南希

C# 单元测试南希,c#,unit-testing,nancy,tinyioc,C#,Unit Testing,Nancy,Tinyioc,我有两个单元测试项目,测试不同的模块。这两个项目都创建了一个类似以下内容的假引导程序: protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); } protected override void ApplicationStartup(TinyIoCContainer container

我有两个单元测试项目,测试不同的模块。这两个项目都创建了一个类似以下内容的假引导程序:

protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
   base.ConfigureApplicationContainer(container);
}

protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
   base.ApplicationStartup(container, pipelines);
}
我遇到的问题是,当我单独运行测试时,它们工作得很好。当我将它们一起运行时,似乎一组模块被加载,然后一组或另一组单元测试通过,这取决于模块加载的顺序

这似乎只发生在MS测试运行中。我正在使用NCrunch(另一个单元测试运行程序框架),它似乎在那里工作

所以,我猜这里的问题是TinyIoC或Nancy没有在测试程序集之间完全刷新,或者因为我使用的是DefaultNancyBootTrapper,单元测试都编译到同一个bin文件夹中,所以它会自动发现其他库中的模块,这些模块不应该为正在运行的测试加载(即使单元测试项目没有引用它们。)


以前有人遇到过类似的情况吗?

连接所有依赖项看起来不像是单元测试,更像是集成测试。为什么不在单元测试中使用ConfigurableBootstrapper,只设置测试模块所需的组件?如果您的模块像上帝一样,并且有大量依赖项,很难手动注册ister,如果你考虑拆分它可能会更好。首先,你有一个很好的观点——这些是集成测试。其次,我计划尝试使用ConfigurableBootstrapper。我已经在一些测试中使用了它,并取得了很好的效果。不管怎样,当一个单元测试框架垃圾收集对象和应用程序域作为很可能,MS测试没有。即使我将静态属性设置为null,并在引导程序对象上调用Dispose,等等。