Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > Visual Studio 2005单元测试中关于外部文件的问题解决
【标  题】:Visual Studio 2005单元测试中关于外部文件的问题解决
【关键字】:Visual,Studio,2005
【来  源】:http://www.cnblogs.com/wayfarer/archive/2007/03/07/666844.html

Visual Studio 2005单元测试中关于外部文件的问题解决

Your Ad Here

在Visual Studio 2005中撰写单元测试的测试用例,比之使用NUnit具有一定的优势,除了本身集成在IDE中之外,对于测试用例的调试也更加方便。在运行测试用例时,Visual Studio 2005有一个显著的特点,就是它会为测试结果单独建立一个TestResults文件夹。然后,每运行一次测试用例,都会创建包含了时间戳的文件夹,在Out文件夹中得到测试的结果。其中,还包含了测试项目以及它所引用的项目的程序集文件。

这带来一个问题。如果我们运行一个应用程序,当程序需要读写外部文件时,我们可以将其放入到编译运行时的debug目录下。在运行时,系统默认的当前目录就是debug目录。我们可以直接给出文件的名字,来访问相关文件。例如:
File.Open("test.txt", FileMode.Open);

现在,运行测试用例的当前目录是动态创建的,我们无法在代码中指定当前目录,以获得外部文件的完整路径。例如我们要测试的类对象,包含了设置读写文件的路径,如下:
[TestMethod]
public void TestReadAndWrite()
{
    TextFileOp op = new TextFileOp();
    op.SourceFile = "source.txt";
    op.TargetFile = "target.txt";
    op.Handle();
}

文件source.txt和target.txt应该放在何处呢?

方法是我们可以将这些外部文件统一放到Solution的一个文件夹,例如Files中。然后,我们打开Solution下的localtestrun.testrunconfig文件。此时会弹出如下图的对话框:

unittest.GIF

在左侧选择Deployment,单击Add Directory按钮,找到Files目录,并添加。如此以来,我们就可以利用如下方式编写单元测试代码:
[TestMethod]
public void TestReadAndWrite()
{
    string filePath = Directory.GetCurrentDirectory() + "\\";
    TextFileOp op = new TextFileOp();
    op.SourceFile = filePath + "source.txt";
    op.TargetFile = filePath + "target.txt";
    op.Handle();
}

Directory.GetCurrentDirectory()方法获得的当前目录就是随机创建的目录下的out文件夹。由于在localtestrun.testrunconfig文件中配置了Deployment的目录,在运行测试用例时,系统会自动将Files文件夹下的所有文件复制到out文件夹中,使得测试用例读写外部文件成为可能。

基于Petri网的工作流与ERP:【上一篇】
ActiveReports工作总结11——麻烦的线线框框:【下一篇】
【相关文章】
  • 使用vs2005的转换向导的一个问题
  • 基于EVC++ VS.net2005判断指定日期的星期又一法
  • SQL Server 2005 SP2发布了,开发人员怎么办?
  • 直接调用内置数据源连接对话框(C#/VB.NET2005源码)
  • 用SQL SERVER 2005的数据挖掘实现图书馆书目推荐服务
  • vs2005 sp1 添加的对smart device native(c++) 支持(support) 新类, 如CSpliterWnd
  • 基于EVC++ vs.net 2005实现判断指定日期的星期
  • 今天安装了SqlServer2005
  • 评《Visual Basic 2005 文件IO与数据存取秘诀》
  • 如何在SQL SERVER 2005中复制数据库
  • 【随机文章】
  • 用xml+xslt实现表格背景色按行交替设置
  • Resin服务器平台介绍简介
  • gtk+-2.0 + postgresql8.0beta1的windows移植
  • IHS转发WAS的安装配置
  • 用std::find查找文件流中的内容
  • eclipse下Hibernate3学习
  • 批处理 4
  • VDSL标准的进展和应用方向
  • 在Linux上安装Matlab6.1
  • RSS 2.0内容提要
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.