Visual Studio 单元测试:运行 每次测试前的初始化代码

Visual Studio Unit tests: run initialization code before each test

我正在使用 Visual Studio 的测试工具进行单元测试。在每次测试.

之前,我需要一些初始化代码到运行

我有一个 Setup class 的初始化代码。我已经在每次测试 运行 之前使用 [AssemblyInitialize] 将代码添加到 运行,但我不知道如何在单一测试基础。

我尝试使用 [TestInitialize] 属性,但这仅适用于与 [TestInitialize] 方法在同一文件中的测试。我希望程序集中所有测试的初始化代码自动 运行,而不必在每个测试文件中显式调用它。

[TestClass]
public class Setup
{
    [AssemblyInitialize]
    public static void InitializeTestRun(TestContext context)
    {
        //... code that runs before each test run
    }

    [TestInitialize] //this doesn't work!
    public static void InitializeTest()
    {
        //... code that runs before each test
    }
}

is [TestInitialize] 但是你的语法有误,它没有上下文:

[TestInitialize]
public static void InitializeTests()
{
    //... code that runs before each test
}

以下应该有效(至少它适用于其他测试框架):

  • 使用 TestInitialize 方法
  • 创建基础 class DatabaseIntegrationTests
  • 从该基础class
  • 派生你的其他测试classes