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

fik*_*tra 4 c# unit-testing visual-studio 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
    }
}
Run Code Online (Sandbox Code Playgroud)

tob*_*sen 6

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

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


stu*_*rtd 5

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

[TestInitialize]
public static void InitializeTests()
{
    //... code that runs before each test
}
Run Code Online (Sandbox Code Playgroud)