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

时间:2016-06-16 14:30:43

标签: c# visual-studio unit-testing visualstudio.testtools

我正在使用Visual Studio的测试工具进行单元测试。我需要一些初始化代码才能在每次测试之前运行

我有一个Setup类用于初始化代码。我已经使用[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
    }
}

2 个答案:

答案 0 :(得分:6)

以下内容应该有效(至少它可以与其他测试框架一起使用):

  • 使用TestInitialize方法
  • 创建基类DatabaseIntegrationTests
  • 从该基类派生您的其他测试类

答案 1 :(得分:4)

is [TestInitialize]但您的语法错误,不需要上下文:

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