C# 是否可以拥有动态动态动态部署项目?
我想编写测试来检查我们的项目将附带的某些文件的存在性(以及其他内容) 这就是我现在拥有的:C# 是否可以拥有动态动态动态部署项目?,c#,tdd,mstest,deploymentitem,C#,Tdd,Mstest,Deploymentitem,我想编写测试来检查我们的项目将附带的某些文件的存在性(以及其他内容) 这就是我现在拥有的: [DeploymentItem("1.pdf")] [DeploymentItem("2.pdf")] public class DoFilesExist { List<string> _Files; public DoFilesExist() { _Files = new List<string>(); _File
[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(“1.pdf”)]
[DeploymentItem(“2.pdf”)]
存在公共类dofiles
{
列出所有文件;
公共dofileexist()
{
_文件=新列表();
_文件。添加(“1.pdf”);
_文件。添加(“2.pdf”);
}
委托无效文件测试(字符串文件名);
无效映射(文件测试)
{
foreach(字符串文件在_文件中)
{
测试(文件);
}
}
[测试方法]
public-void-TestExists()
{
Map(x=>Assert.IsTrue(File.Exists(x),x+“不存在”);
}
}
如您所见,当我想添加另一个文件进行测试时,我必须添加到[DeploymentItem]和_Files列表中
有没有办法动态更改DeploymentItems?或者在运行时从它们那里抓取。我可能会在这里有超过30个文件,我不想要两个列表
提前谢谢 看起来您主要是在测试
[DeploymentItem]
是否有效。。。毕竟,定义实际部署的不是[DeploymentItem]
就个人而言,这是我鄙视MSTest。NET项目已经有了定义部署数据的方法-项目!通过引入第二种方法,它同时引入了重复和风险。我使用NUnit而不是MSTest的原因之一,即使我有VSTS许可证
重新考虑这个问题;您可以使用反射来查看
DeploymentItem
标记,但我真的不确定这是在测试什么,除了测试框架本身…看起来您主要是在测试[DeploymentItem]
是否工作。。。毕竟,定义实际部署的不是[DeploymentItem]
就个人而言,这是我鄙视MSTest。NET项目已经有了定义部署数据的方法-项目!通过引入第二种方法,它同时引入了重复和风险。我使用NUnit而不是MSTest的原因之一,即使我有VSTS许可证
重新考虑这个问题;您可以使用反射查看
DeploymentItem
标记,但除了测试框架本身之外,我真的不确定这是在测试什么…一种可能性是将文件放入子目录,然后您可以使用部署项引用,例如
[DeploymentItem("files\"]
public class Test
{
}
您可能还需要使用CopyAlways标记每个文件-有关详细信息,请参阅主要问题。一种可能是将文件放入子目录,然后您可以拥有部署项引用,例如
[DeploymentItem("files\"]
public class Test
{
}
您可能还需要使用CopyAlways标记每个文件-有关详细信息,请参见主要问题。这个简单的示例正在测试框架…但是,我将做的不仅仅是一个file.Exists()调用。我想简化这个问题的示例。如何通过反射获取DeploymentItem的?GetType().GetCustomAttributes(typeof(DeploymentItemAttribute))。这个简单的示例正在测试框架……但是,我将做的不仅仅是一个File.Exists()调用。我想简化这个问题的示例。如何通过反射获取DeploymentItem的属性?GetType().GetCustomAttributes(typeof(DeploymentItemAttribute))