6

我正在使用 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
    }
}
4

2 回答 2

8

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

  • TestInitialize使用方法创建基类 DatabaseIntegrationTests
  • 从该基类派生您的其他测试类
于 2016-07-05T06:56:48.240 回答
5

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

[TestInitialize]
public static void InitializeTests()
{
    //... code that runs before each test
}
于 2016-06-16T14:41:26.570 回答