单元测试:如何访问文本文件?

Pab*_*ote 31 unit-testing visual-studio-2008 visual-studio

我正在使用Visual Studio 2008和Microsoft测试工具.我需要从单元测试中访问文本文件.

我已经将构建操作设置为'Content'的文件配置并将输出目录复制到'Copy Always',但文件没有被复制到输出目录,根据System.Environment.CurrentDirectory

'{project_path}\TestResults\Pablo_COMPU 2009-11-26 15_01_23\Out'

此文件夹包含项目的所有DLL依赖项,但我的文本文件不存在.

从单元测试中访问文本文件的正确方法是什么?

Ale*_*ger 42

您必须将该DeploymentItem属性添加到测试类.使用此属性,您可以指定复制到测试运行的out目录中的文件.

例如:

[TestMethod]
[DeploymentItem(@"myfile.txt", "optionalOutFolder")]
public void MyTest()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

另请参见:http://msdn.microsoft.com/en-us/library/ms182475.aspx.


Gav*_*vin 11

或者,如果将所有文本文件设置为"复制到构建目录",则可以通过执行此操作在测试中引用它们的路径

var directory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
var path = string.Format("{0}\\{1}",directory,"myFile.txt");
Run Code Online (Sandbox Code Playgroud)

  • 最好使用 `System.IO.Path.Combine()` 而不是字符串连接。否则,这在单元测试场景中对我有用。 (2认同)