如何在bin文件夹中运行单元测试

Gee*_*nga 15 .net unit-testing mstest visual-studio-2012

我正在尝试在单元测试期间访问我的解决方案结构中的文件.我的单元测试项目有bin\Debug\输出目录.所以我编写了代码,假设Path.GetFullPath(".") 在我的单元测试中会给我这个bin文件夹.但它的作用是它给了我一个临时的位置作为路径.

C:\Users\[username]\AppData\Local\Temp\TestResults\[username]_[machine_name] 2013-05-16 08_31_07\Out
Run Code Online (Sandbox Code Playgroud)

显然我的单元测试无法访问我的解决方案中的文件.如果有人知道如何在单元测试项目的bin文件夹中运行单元测试请帮助.

guy*_*man 13

您可以使用.runsettings文件和设置来完成此操作<DeploymentEnabled>false</DeploymentEnabled>.请参阅此处的"备注"部分.但是,如果您使用.testsettings文件,则无法执行此操作,并且如果您希望能够检查测试在运行失败后读取或写入的任何文件,则可能无法执行此操作,因为它们可能是受到进一步测试等的污染

另一种选择是使用部署项,可以通过DeploymentItemAttribute或通过.testsettings文件来完成.属性机制是首选,基本上,对于需要为其部署文件的测试方法,请执行以下操作:

[DeploymentItem(@"source", @"target")]
public void Test1() {}
Run Code Online (Sandbox Code Playgroud)

其中source是相对于构建输出文件夹的路径,或者是绝对路径,而target是相对于测试运行位置的路径,或者是绝对路径.您可以保留目标参数,在这种情况下,它将假定目标为".",即运行测试的文件夹.这方面的文档就在这里