2013-08-01 25 views
1

我正在为使用xml设置文件(例如,C:\ ssis \ mySettingsFile.xml)运行的应用程序创建SpecFlow测试。在一次测试中,我想将文件保存到磁盘,然后将该文件添加到我的项目资源并清理磁盘位置。然后,另一个测试将解压资源到一个临时目录并从那里使用它。使用C#向项目资源添加文件

我很清楚解压部分,但有没有一种方法可以编程方式将文件打包到项目资源中,而不是使用VS GUI手动将其添加到项目中并将其标记为嵌入资源?

我知道这是错的,但我的线沿线的一些思考:

string myPath = "C:\ssis\mySettingsFile.xml"; 
TestHelper.ResourceDirectory = "$\...\...\Project.Folder.Resources"; 
myResource = TestHelper.PackResource(myPath); 
myResource.IsEmbeddedResource = true; 

...其中PackResource方法将文件保存到项目资源。

在此先感谢!

回答

2

你可以创建一个资源文件夹并添加你的xml到它。 当您点击项目的属性时,会出现一个资源选项卡,您可以在其中看到您的文件。 要访问该文件,可以使用ProjectNamespace.Properties.Resources.yourfilename。

+0

谢谢,但我需要在我的测试类中使用C#专门添加它,因为它不存在于我想保存到测试运行后的任何状态。我会尝试添加一个我想要做的事情的例子。 –

+0

我发现[这个论坛帖子](http://stackoverflow.com/questions/6926378/how-do-i-replace-embedded-resources-in-a-net-assembly-programmatically),似乎做我的是什么希望去做。然而,经过进一步的研究,它可能会违反我想要/需要的结果。由于将文件保存到我的资源中会在每次运行时改变测试的状态,因此基本上使测试无效。 为了保持无菌的测试环境,我将删除我解压缩的任何临时文件,并手动将我的文件嵌入到上述建议的需要测试的文件中。谢谢! –

相关问题