【问题标题】:Getting an assembly's directory from an automated test从自动化测试中获取程序集的目录
【发布时间】:2012-02-01 19:01:28
【问题描述】:

我正在尝试编写集成测试以涵盖对我的应用程序的重大重构(我想编写单元测试,但距离可单元测试还很远)。我正在使用 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)

我怎样才能得到正确的路径?

【问题讨论】:

  • +1 表示您应该在重构之前进行测试。

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


【解决方案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 中关闭卷影复制

【讨论】:

  • +1,即使我接受了 oleksii 的回答(因为我更多地使用 R#)。自己在 NUnit 上工作。
【解决方案2】:

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

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

取消选择正在测试的影子复制程序集

【讨论】:

  • 我已经这样做了,但仍然面临同样的问题。甚至重新启动了 VS 并重建了一切。没有效果。
  • 那么最好问一个新问题,告诉你你做了什么,发布一些代码并提到这个答案没有帮助。抱歉,无法提出更好的建议。
  • 谢谢。但这实际上是完全相同的情况。找到具有完全相同答案的类似问题。所以这似乎是要走的路,只是出于某种原因不适合我:-(
猜你喜欢
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 2010-12-07
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多