我有一些数据驱动的单元测试在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);
}
这是我的解决方案结构。
当我在Visual Studio 2012中运行相同的测试时,它们会失败,并显示以下错误消息。
结果消息:单元测试适配器无法连接到数据源或读取数据。有关解决此错误的详细信息,请参阅MSDN Library中的“数据驱动单元测试疑难解答”(http://go.microsoft.com/fwlink/?LinkId=62412)。错误详细信息:对象引用未设置为对象的实例。
为什么我的单元测试突然失败?
答案 0 :(得分:8)
在Visual Studio 2010中,DeploymentItem
属性与解决方案相关,但在Visual Studio 2012中,它与项目相关。只需指定相对于项目文件夹的DeploymentItem
路径,单元测试将重新开始工作。
有关详细信息,请参阅以下链接。