单元测试:如果数据文件位于文件夹中,则无法找到

时间:2015-12-29 09:54:09

标签: c# xml unit-testing

我正在创建数据驱动的单元测试方法,该方法使用xml来传递数据。我已经按照SO和MS网站上给出的示例进行了操作,并相应地创建了一个方法。

我在项目的目录xml中创建了一个data文件。所以路径是/data/d.xml。我已将Copy to Output Directory属性设置为Copy always。我在这里面临的问题是,文件被复制到目录Debug\data\d.xml,但是,我的单元测试方法正试图在Debug\d.xml中找到它。

如何使我的单元测试方法在Debug\data\d.xml中找到该文件或如何在Debug文件夹下直接移动我的数据文件而不将其移出data目录?<登记/> 我的单元测试方法如下,

    [TestMethod]
    [DeploymentItem("d.xml")]
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "/data/d.xml", "model", DataAccessMethod.Sequential)]
    public void GetCPCModelTest()
    {
        //some code
        Assert.IsTrue(model != null);
    }

1 个答案:

答案 0 :(得分:1)

尝试使用Directory中的System.IO提供完整路径,并在测试设置中找到路径。

示例(可能不准确):

private string path;

[TestInitialize]
public void InitTest()
{
    string dir = Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).FullName;
    path = dir + "\\data\\d.xml";
}

[TestMethod]
[DeploymentItem("d.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", path, "model", DataAccessMethod.Sequential)]