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))