从自动化测试中获取程序集的目录

时间:2012-01-03 19:09:35

标签: .net vb.net visual-studio-2010 nunit resharper

我正在尝试编写集成测试来覆盖我的应用程序的大量重构(我想编写单元测试,但它远不是单元可测试的)。我正在使用Visual Studio 2010 SP1,Resharper和NUnit。

我目前的问题是我找不到一致的方法来获取执行程序集的目录;我自己运行应用程序时或者从Visual Studio调试时尝试使用的两种方法,但是在从NUnit或Resharper运行测试时它们会失败。 这是代码(VB.NET):

'Method 1    
Core.ConfigFile = My.Application.Info.DirectoryPath + "\" + DRA_CONFIG_FILE
'Method 2
Core.ConfigFile = IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().Location) + "\" + DRA_CONFIG_FILE

当我使用Resharper调试测试时,我得到了这样的结果:

C:\Documents and Settings\Tomas\Local Settings\Temp\0xl3rbd5.4qn\MGClient.Test\assembly\dl3\2a373977\60b182bb_e5c9cc01\DRA.config

(应为D:\ SVN.DRA.WorkingCopy \ DRA.Test \ Integration \ MGClient.Test \ bin \ Debug \ DRA.config)

如何获得正确的路径?

2 个答案:

答案 0 :(得分:8)

您需要在Resharper中禁用阴影复制:

Visial Studio菜单 - > Resharper - >选项 - >工具 - >单元测试

取消选择正在测试的影子副本程序集

答案 1 :(得分:1)

  

当我使用Resharper调试测试时,我得到了这样的结果:

C:\Documents and Settings\Tomas\Local Settings\Temp\0xl3rbd5.4qn\MGClient.Test\assembly\dl3\2a373977\60b182bb_e5c9cc01\DRA.config

在NUnit Test Loader Settings - Advanced

中关闭卷影副本