前言:

C#工程项目中有些配置文件,数据文件等不是C#工程文件,但是程序中需要访问,如果写成绝对路径不利于程序的迁移,所以必须写成相对路径。取得相对路径的方法很多,网上的例子也很多,基本上是七种吧,这里不再赘述,

请看此链接:点击打开链接

但是现在我利用VS2010中的项目创建单元测试功能,对我的项目进行测试。测试工程使用上面的其中方法就不可行了。测试工程是依赖于原有的工程的。在bin/debug/生成的exe也是你被测试的工程exe。因此使用process,environment,appication类都取不到当前工程路径。比如在我的机器上string str = Application.StartupPath;取到的路径就是VS2010的路径【C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE】

那么问题来了,我们如何取到测试工程的当前路径呢

一.程序集

观察bin/debug目录,我们之前通过Appication.StartupPath等方法能够取到当前工程的相对目录是因为.exe可执行文件的存在。但是测试工程中没有测试工程的exe,所以其他方法取不到。但是观察发现,目录下面生成了测试工程的dll。dll是程序集。只要我们取得程序集路径然后进行处理即可。

Assembly.CodeBase属性:取得程序集位置

参考:点击打开链接

因此:

string str=Assembly.GetExecutingAssembly().CodeBase;(using System.Reflection;)

即可取到程序集路径但是注意这个路径前面有:file:///。以及后面的.dll名称。因此我们需要进行字符处理

二.字符处理

    主要是去除开头的file:///和结尾的dll名称
代码如下:

三.注意事项

    这里取得路径方法并不局限与测试工程。可以应用于使用基本的方法取不到的其他场合。
在具体工程使用时:创建测试工程会生成一个solution items。这个配置文件目前尚未研究,但是如果没有了这个文件,通过Assembly.GetExecutingAssembly().CodeBase方法式取不到dll路径的

转载于:https://www.cnblogs.com/stoneFang/p/6715318.html

c# 单元测试工程如何取得当前项目路径相关推荐

  1. unity 打开项目路径无效_怎么打开已有的unity工程文件?如何打开一个已有的unity3d游戏工程啊?...

    第一种方法:通过点击场景文件打开Unity游戏工程 找到Unity游戏工程所在的目录,我这里的工程放在在E盘根路径的Unity_workspace文件夹中. 注意:unity软件不支持中文路径,所以不 ...

  2. 在服务器中如何获取项目名,成都汇智动力-java获得项目路径

    原标题:成都汇智动力-java获得项目路径 java获得项目路径,在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB ...

  3. 结合提前批面试,聊聊今年浙大工程管理硕士(MEM)项目的报考!

    时间已经来到五月中旬,对于浙大MEM项目的准考生,虽然提前批面试的时间节点还没有出来,但自身的备考确实要提上日程了,因为工程管理硕士的在职考生中相当一部分都是时间和精力比较有限的,为避免下半年工作上的 ...

  4. 获取java项目路径_Java获取项目路径

    Java获取项目路径 1. 利用System获取System.getProperty("user.dir"); //输出: E:\IDEA\canye365-crawler-dem ...

  5. java获取项目中的路径_java中几种获取项目路径方式

    转自http://caodaoxi.iteye.com/blog/1234805 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是Web ...

  6. JAVA项目中获取项目路径

    public static void main(String[] args) {MyUrlDemo muDemo = new MyUrlDemo();try {muDemo.showURL();} c ...

  7. 怎么修改云服务器项目路径,云服务器tomcat的项目路径怎么设置

    云服务器tomcat的项目路径怎么设置 内容精选 换一换 华为云提供两种连接方式通过MySQL客户端连接实例:非SSL连接和SSL连接.其中,SSL连接实现了数据加密功能,具有更高的安全性.登录弹性云 ...

  8. java取路径含中文_java获取项目路径中文乱码

    以下内容转自:http://blog.csdn.net/dream_broken/article/details/31762807# 项目的文件名称推荐都是英文名称,但是有时不可避免使用了中文,获取项 ...

  9. tomcat中实现特定路径下的图片的url访问Tomcat配置图片保存路径,图片不保存在项目路径下...

    使用Tomcat作为服务器的时候,如果不配置图片保存路径,将图片保存在项目路径下,那么再次打war包发布项目可能会造成图片的丢失,每次重启前将图片先保存再copy到服务器明显不方便,这时可以配置图片保 ...

最新文章

  1. Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
  2. linux安装并管理mysql数据库
  3. How to resolve conflicts in TortoiseSVN
  4. 如何让你的百万级SQL运行得更快 else
  5. 方法练习1_比较两个数字是否相同
  6. 算法 --- 平衡二叉树
  7. rfc mail content-type
  8. 学习ESLint的规则配置,ESLint语法检测配置说明
  9. easyui关闭dialog后刷新父页面_两种方法WordPress批量打开、关闭文章评论功能
  10. 四款主流测试工具的测试流程
  11. 面向.Net程序员的Sql版本管理
  12. python 命令行运行 多进程_Python初学——多进程Multiprocessing
  13. [深入理解C++(一)]类型转换(Type Casting)
  14. 博达路由器常见功能教学0
  15. Restorator 2007 Build 1709 韦斯特*金 汉化版
  16. TensorFlow激励函数
  17. GAX (Guidance Automation Extensions) 与 GAT (Guidance Automation Toolkit)
  18. 基于Springboot+Mybatis+Mysql的人事考勤统计管理系统
  19. Mac如何查看系统根目录
  20. Farmer John 木瓜地 C++

热门文章

  1. pad_sequences序列填充(转载)
  2. win7内部版本7601副本不是正版
  3. python2.x和python3.x-matplotlib中文显示为方块-中文不显示-故障原理研究与解决
  4. expect一键登录mysql
  5. 使用pos标记寻找三词短语
  6. MySql---数据库笔记(功能齐全)
  7. SpringBoot入门_搭建及配置环境(eclipse || Spring ToolS)
  8. 一步一步学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)
  9. 观察+|腾讯网易终获游戏版号,但all in 游戏时代已结束
  10. BBSSDK论坛移动化实现方案