在Visual Studio 2010 C#测试项目中使用测试文件/目录的最佳实践

Rya*_*yes 8 c# copy build visual-studio-2010 c#-4.0

我在Visual Studio 2010解决方案中有一个测试项目,它测试另一个作为FTP实用程序的项目.测试项目需要在这里和那里使用FTP文件,因此我使用测试文件传递给实用程序方法并验证它是否上传/存档/等.在我的测试项目中,我在其根目录下有一个名为TestFiles的文件夹,其中包含一个.txt文件.我想把它带到哪里有人从源代码控制中检出解决方案并运行单元测试时,该文件夹中的文件被抓取并在FTP单元测试中使用.

我已经尝试过使用它,以及后期构建事件命令行中的变体,但没有运气:

copy $(ProjectDir)TestFiles\Test.txt $(ProjectDir)Debug\bin\Test.txt
Run Code Online (Sandbox Code Playgroud)

我真正想做的就是确保我可以为任何本地测试文件使用相对路径,这样无论我的团队中的某个人检查项目的位置(或者Team Foundation Server是否运行),我都保证不会出现问题自动构建并为我的项目激活单元测试).

我正在尝试在我的单元测试中访问该文件,所以我只是从调试区域抓取它:

ftp.uploadThisFileSomewhere(
AppDomain.CurrentDomain.BaseDirectory + "\\TestFiles\\Test.txt");
Run Code Online (Sandbox Code Playgroud)

那么,这是获取测试文件的正确方法吗?我认为不是,但我似乎无法找到一个好的最佳实践文档.如果它足够好,无论项目在何处构建/运行,如何复制/保证相对位置

Pur*_*ome 7

建议的做法是对MSTest过程中需要自动复制的每个项使用DeploymentItem属性.

从定义项目到确保每个文件都具有正确的属性,有很多步骤可以遵循,等等等等等等.所以,我写了很多关于如何做到这一点的指示.

阅读有关如何执行此操作的详细说明.