找不到文件异常在 Visual Studio 2013 中使用 Codedui 运行规范流测试



我整个早上都在在线寻找答案,我已经尝试了很多建议,尽管所有解决方案似乎都适用于 Visual Studio 2010 并且我正在运行 2013 高级版,我看不到任何有同样问题的人。

有高级VS 2013,我通过扩展管理器安装了SpecFlow v1.9并添加了SpecFlow nuget包。 我创建了一个 CodedUI 测试项目,并添加了一个功能文件、一些记录的 codedui 步骤和一个 stepdef 文件。没有什么是抱怨,一切看起来都应该有效。 我补充了: <unitTestProvider name="MsTest"/>到我的 App.config,这样我就可以从 Visual Studio 中的测试资源管理器运行它。我最终想通过 MTM 运行测试,但当我让它工作时我会处理这个问题!

我已经构建并且一切都很高兴,所以我去测试资源管理器,我可以看到我的测试,所以我右键单击,运行测试。 它失败并出现以下错误,当我调试时它确实会到达我的给定步骤,并在尝试打开我的应用程序时失败。

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 [HKLMSoftwareMicrosoftFusion!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 [HKLMSoftwareMicrosoftFusion!EnableLog].

当我想要将其添加到我的项目参考时,我找不到上面的参考,有一个类似的参考,但当我添加它时它会破坏我的其他一些参考。 我还查看了我的注册表文件,它所引用的路径不存在供我编辑。 从我所读到的内容来看,codedui 不能很好地与没有 dll 文件的 specflow 配合使用。对此修复程序的所有引用似乎都适用于 vs 2010,并且要求我将 dll 复制到我的 specflow 源文件夹。 我从视觉工作室安装了specflow,所以我没有程序文件文件夹,所以我对该解决方案提出了一些症结。

没有人有 specflow 与 visual studio 2013 和 codedui 测试项目一起工作? 我是否缺少设置步骤? 或者这真的与我的注册表文件/参考有关。 该错误令人困惑,因为我不明白为什么它试图找到该参考,尤其是当我尝试手动查找该参考时,我在任何地方都找不到该参考时。我很想知道您是否遇到此错误并设法解决了它,或者您是否可以解释您的设置步骤,以便我可以检查我没有错过任何东西。

谢谢!

我相信

您可能缺少对某些必需的 dll 的引用。我刚刚在我的MS Visual Studio 2013 ultimate上测试完了使用Specflow,codedUI测试项目创建的测试,它工作得很好。

以下是我遵循的步骤:

  1. 创建了一个类库项目。
  2. 从扩展和更新中添加了对 Specflow 1.9 的引用。
  3. 添加了对 Specflow CodedUI 属性生成器(安装包 SpecFlow.CodedUI -Version 1.0.0.23(的引用。
  4. 向项目添加了对 CodedUI 和测试工具所需的所需库的引用。请参阅下面我添加的参考资料。

    Microsoft.VisualStudio.QualityTools.CodedUITestFrameworkMicrosoft.VisualStudio.QualityTools.UnitTestFrameworkMicrosoft.VisualStudio.TestTools.UITest.CommonMicrosoft.VisualStudio.TestTools.UITest.ExtensionMicrosoft.VisualStudio.TestTools.UITest.ExtensionUtilitiesMicrosoft.VisualStudio.TestTools.UITesting

  5. 向解决方案中添加了一个单独的 CodedUI 项目,并将此项目的引用添加到类库项目中。

  6. 创建一个带有一些测试的新 Specflow 功能文件,并在步骤定义中为其创建步骤,并引用您在步骤定义中的 CodedUI 项目中创建或记录的函数。

  7. 从测试资源管理器运行规范流测试。它应该可以正常工作。

注意:如果要创建 CodedUI 项目而不是类库项目,上述步骤应该可以正常工作。

使用 CodedUITest 属性标记测试类。

即使

我正确引用了所有.dll,我也有这个确切的错误消息。我的解决方案是重新生成功能文件。(右键单击项目并选择"重新生成特征文件"(

留下这个答案,以防将来对某人有所帮助。

我今天遇到了同样的问题,不是 specflow,而是 2013 年构建控制器和代理以及 codedui 测试。解决方案是安装VS2013更新5 https://www.visualstudio.com/downloads/download-visual-studio-vs

最新更新