为什么数据驱动的单元测试在vs2012中在vs2010中正常工作时失败?

时间:2013-04-15 22:26:47

标签: c# visual-studio-2010 visual-studio-2012 data-driven-tests deploymentitem

我有一些数据驱动的单元测试在Visual Studio 2010中运行得很好。这些测试是使用以下模式实现的。

[TestMethod()]
[DeploymentItem("path_to_data_dir_relative_to_solution\\my_data.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\my_data.xml", "Token", DataAccessMethod.Sequential)]
public void MyTestMethod()
{
    // Arrange
    const string EXPECTED_PARAM_NAME = "table";
    string data = TestContext.DataRow["Data"].ToString();
    var sut = new MyClassUnderTest();

    // Act
    sut.DoSomething(data);

    // Assert
    Assert.IsTrue(sut.DidSomething);
}

这是我的解决方案结构。

  • MySolutionFolder
    • MyTestProjectFolder
    • MyTestDataFolder
      • my_data.xml

当我在Visual Studio 2012中运行相同的测试时,它们会失败,并显示以下错误消息。

结果消息:单元测试适配器无法连接到数据源或读取数据。有关解决此错误的详细信息,请参阅MSDN Library中的“数据驱动单元测试疑难解答”(http://go.microsoft.com/fwlink/?LinkId=62412)。错误详细信息:对象引用未设置为对象的实例。

为什么我的单元测试突然失败?

1 个答案:

答案 0 :(得分:8)

在Visual Studio 2010中,DeploymentItem属性与解决方案相关,但在Visual Studio 2012中,它与项目相关。只需指定相对于项目文件夹的DeploymentItem路径,单元测试将重新开始工作。

有关详细信息,请参阅以下链接。

http://social.msdn.microsoft.com/Forums/en-US/vsunittest/thread/4a8403a2-b495-4120-aad3-0d0becc7e45e/