Unit testing 如何在C中的单元测试中在类初始化时附加数据源#

Unit testing 如何在C中的单元测试中在类初始化时附加数据源#,unit-testing,data-driven-tests,Unit Testing,Data Driven Tests,我正在用C#编写数据驱动的单元测试。我希望在类级别附加数据源,以便所有测试都将针对一组输入运行。有人告诉我TestContext属性的问题是什么,我无法访问它,因为ClassInitialize方法是静态的。以下是守则- [ClassInitialize] [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "TrackingData.csv",

我正在用C#编写数据驱动的单元测试。我希望在类级别附加数据源,以便所有测试都将针对一组输入运行。有人告诉我TestContext属性的问题是什么,我无法访问它,因为ClassInitialize方法是静态的。以下是守则-

    [ClassInitialize]
            [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
                "TrackingData.csv",
                "TrackingData#csv",
                DataAccessMethod.Sequential)]
            public static void ClassInit(TestContext tc)
    {
       // Inside this i am trying to access the static TestContext property but its not working
    }

public static TestContext TestContext {get; set;}
我得到的错误是“您不能有静态TestContext属性

有人能帮我一下吗?

必须是实例属性,不能是静态的。恐怕除了为每个TestMethod复制属性之外,您别无选择


您可以做的一件事是将数据源的描述移动到配置文件中,如前所述。

谢谢您的回复!实际上,从csv文件中读取一行之后,我需要执行两个操作。这将设置一些值,这些值对于该运行中的每个测试都应该是通用的。所以我需要读取一行设置一些值,测试将以所有这些值作为输入运行。然后,对于下一行,应重复相同的过程。如果我在TestMethod中移动代码,最终会超过100个,那么我就做错了两件事——重复相同的属性和每次运行公共操作。有没有其他方法可以实现这一点?如果我将在初始化类中手动读取CSV文件(不是excel),那么我将如何反复运行测试?这实际上可以自动用于数据驱动的测试,我如何手动执行?是的,我不认为有一种简单的方法可以避免重复最后一件事-我可以在Testentialize()处附加数据源属性并使其适用于所有测试方法吗?我甚至面临这个问题-TestContext的DataRow属性在本例中为null,而当数据源属性附加到每个测试方法时,它可以正常工作。您使用app.config提供了fo链接,在CSV文件的情况下,连接字符串是什么?