【发布时间】:2020-11-10 10:26:41
【问题描述】:
我继承了一个由 VB.Net 项目组成的 ASP.Net Web 应用程序。我在解决方案中添加了一个 C# 项目,它引用了几个 VB.Net 项目。
该应用程序使用 Castle Windsor 作为 DI 容器,并且在其中一个 VB.Net 项目中注册了依赖项。
在那个 VB.Net 项目中。为了避免循环引用,我使用“FromAssemblyNamed”方法来注册我的 C# 项目中定义的依赖项:
container.Register(Classes.FromAssemblyNamed("x.y.z.TLBusinessLayerV2").BasedOn(Of IService).WithService.FromInterface().Configure(Function(c) c.LifeStyle.Transient))
当我运行应用程序时,这一切正常。
但是,有一个现有的单元测试项目。其中我添加了对我的 C# 程序集的引用。 当我运行所有测试时,一些测试在遇到上面的代码时会失败,并出现以下异常:
System.IO.FileNotFoundException:无法加载文件或程序集 x.y.z.TLBusinessLayerV2' 或其依赖项之一。系统找不到指定的文件。
- C# 程序集引用的所有程序集也被单元测试项目引用。
- VB.Net 项目、C# 项目和单元测试项目的 Target CPU 均设置为 x86。
如果我随后单独运行其中一项失败的测试,则测试通过。
问。当我全部运行测试时,为什么测试都失败了? 非常感谢任何帮助。
【问题讨论】:
标签: c# vb.net unit-testing castle-windsor