【发布时间】:2015-02-02 11:42:23
【问题描述】:
我整个上午都在网上寻找答案,我尝试了很多建议,尽管所有解决方案似乎都适用于 Visual Studio 2010 并且我正在运行 2013 高级版,但我看不到任何人同样的问题。
我有高级 VS 2013,我通过扩展管理器安装了 SpecFlow v1.9 并添加了 SpecFlow nuget 包。我创建了一个 CodedUI 测试项目并添加了一个功能文件、一些记录的 codedui 步骤和一个 stepdef 文件。没有什么可抱怨的,这一切看起来都应该奏效。我已经添加了 :
<unitTestProvider name="MsTest"/>
到我的 App.config 以便我可以从 Visual Studio 中的测试资源管理器运行它。我最终想通过 MTM 运行测试,但是当我让它工作时我会处理这个问题!
我已经构建并且一切都很开心,所以我去测试资源管理器,我可以看到我的测试,所以我右键单击,运行测试。它失败并出现以下错误,当我调试并尝试打开我的应用程序时,它确实到达了我的 Given 步骤。
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.TestTools.UITest.WindowsStoreUtility, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
当我试图将它添加到我的项目引用中时,我找不到上面的引用,有一个类似的,但是当我添加它时它破坏了我的一些其他引用。我还查看了我的注册表文件,它所指的路径不存在,我无法对其进行编辑。从我读到的内容来看,没有 dll 文件的 codedui 不能很好地与 specflow 一起工作。对此修复的所有引用似乎都是针对 vs 2010 的,并且要求我将 dll 复制到我的 specflow 源文件夹。我从visual studio安装了specflow,所以我没有程序文件夹,所以我对那个解决方案有点棘手。
是否有人拥有使用 Visual Studio 2013 和 codedui 测试项目的 specflow?我错过了设置步骤吗?或者这真的与我的注册表文件/参考有关。该错误令人困惑,因为我不明白它为什么要尝试查找该引用,尤其是当我尝试手动查找时在任何地方都找不到该引用时。我很想知道您是否遇到此错误并设法解决它,或者您是否可以解释您的设置步骤,以便我可以检查我没有遗漏任何内容。
谢谢!
【问题讨论】:
-
您的 specflow 将安装在扩展文件夹中。我的建议是安装 void 工具中的所有内容,然后搜索 techtalk.specflow.dll,然后将 2010 修复程序中的 dll 放入安装扩展程序的文件夹中。
标签: visual-studio-2013 coded-ui-tests specflow