我想编写测试来检查将随我们的项目一起提供的某些文件的存在(和其他内容)。

这就是我现在所拥有的:

[DeploymentItem("1.pdf")]
[DeploymentItem("2.pdf")]
public class DoFilesExist
{
    List<string> _Files;

    public DoFilesExist()
    {
        _Files = new List<string>();
        _Files.Add("1.pdf");
        _Files.Add("2.pdf");
    }

    delegate void fileTest(string fileName);

    void Map(fileTest test)
    {
        foreach (string file in _Files)
        {
            test(file);
        }
    }

    [TestMethod]
    public void TestExists()
    {
        Map( x => Assert.IsTrue(File.Exists(x), x + " doesn't exist") );
    }
}


如您所见,当我想添加另一个文件进行测试时,我必须添加到[DeploymentItem]和_Files列表中

有没有一种方法可以动态更改DeploymentItems?或者在运行时从它们那里抢走。我可能最终在这里拥有30多个文件,并且我不希望有两个列表。

提前致谢!

最佳答案

看来您似乎主要是在测试[DeploymentItem]是否有效……毕竟-不是[DeploymentItem]定义了您的实际部署。

就个人而言,这是我对MSTest的鄙视。 .NET项目已经有一种定义部署数据的方法-项目!通过引入第二种方法,它同时引入了重复和风险。我使用NUnit而不是MSTest的原因之一,即使我拥有VSTS许可证</rant>

再问一个问题;您可以使用反射来查看DeploymentItem标记,但是我真的不确定这是什么测试,除了测试框架本身...

关于c# - 是否可能具有动态-即时部署项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1134262/

10-11 22:54