我想编写测试来检查将随我们的项目一起提供的某些文件的存在(和其他内容)。
这就是我现在所拥有的:
[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/