Visual Studio Test Project Start Up Event?

本文关键字:Up Event Start Project Studio Test Visual | 更新日期: 2023-09-27 18:31:36

我的项目都使用StructureMap作为容器/IoC。我在存储库模式之类的东西中利用它。在我的单元测试项目中,我已经在有意义的时候实现了测试存储库。为了让结构图知道要使用什么具体实现,我需要初始化容器并运行类型注册。我正在寻找一个在单元测试项目中调用我的 IoC.Initialize() 的地方。在单元测试之外,例如,在 Web 项目中,我可以从 Global.asax 初始化我的 IoC 容器/注册。我正在寻找相当于 Global.asax 的单元测试(例如静态 void main,一种连接到单元测试的主启动事件入口点的方法)。我通过对所有测试使用基类并在那里初始化来解决这个问题,因此运行的任何测试最终都会初始化 IoC 容器(如果尚未初始化......但恕我直言,这非常黑客化,所以我正在寻找一种更清洁的方法。

有什么建议吗?

更新/答案

以下是我根据 Matthew 的响应实施的解决方案。

<TestClass()>
Public Module Main
    Public Property TestContext As TestContext
    <AssemblyInitialize()>
    Public Sub Initialize(_TestContext As TestContext)
        TestContext = _TestContext
        IoC.Initialize()
    End Sub
End Module

Visual Studio Test Project Start Up Event?

您可能正在寻找AssemblyInitializeAttribute。可以在程序集的类中使用它修饰方法,它将在该程序集中的任何测试运行之前运行一次。