文件未找到异常在visual studio 2013中使用编码的ui运行specflow测试

时间:2014-12-04 14:35:55

标签: visual-studio-2013 coded-ui-tests specflow

我整个上午一直在网上寻找答案,我已经尝试了很多建议,虽然所有的解决方案似乎都适用于Visual Studio 2010而且我正在运行2013年高级版,我可以'看到有同样问题的人。

我有高级VS 2013,我通过扩展管理器安装了SpecFlow v1.9并添加了SpecFlow nuget包。我创建了一个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].

当我想要将它添加到我的项目引用中时,我找不到上面的引用,有一个类似的但是当我添加它时它会破坏我的其他一些引用。我还看了一下我的注册表文件,它所指的路径对我来说是不可编辑的。从我所读到的,encodeui在没有dll文件的情况下不能很好地使用specflow。所有对此修复的引用似乎都适用于vs 2010,并且要求我将dll复制到我的specflow源文件夹。我从visual studio安装了specflow,所以我没有一个程序文件文件夹,所以我对这个解决方案有点困难。

有没有人有使用visual studio 2013和codedui测试项目的specflow?我错过了设置步骤吗?或者这真的与我的注册表文件/引用有关。错误令人困惑,因为我不知道为什么它试图找到该引用,特别是当我尝试手动找到它时,我无法找到该引用。我有兴趣知道您是否遇到此错误并设法解决它,或者您是否可以解释您的设置步骤,以便我可以检查我没有错过任何内容。

谢谢!

5 个答案:

答案 0 :(得分:4)

我相信你可能会错过一些必需的dll的引用。我刚刚完成了使用我的MS Visual Studio 2013终极版上的Specflow,codedUI测试项目创建的测试,它运行得很好。

以下是我遵循的步骤:

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

    Microsoft.VisualStudio.QualityTools.CodedUITestFramework Microsoft.VisualStudio.QualityTools.UnitTestFramework Microsoft.VisualStudio.TestTools.UITest.Common Microsoft.VisualStudio.TestTools.UITest.Extension Microsoft.VisualStudio.TestTools.UITest.ExtensionUtilities Microsoft.VisualStudio.TestTools.UITesting

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

  6. 在步骤定义中创建一个新的Specflow特征文件及其一些测试和创建步骤,并引用您在步骤定义中在CodedUI项目中创建或记录的函数。

  7. 从测试资源管理器运行Specflow测试。它应该可以正常工作。
  8. 注意:如果您要创建CodedUI项目而不是类库项目,上述步骤应该可以正常工作。

答案 1 :(得分:1)

使用CodedUITest属性标记测试类。

答案 2 :(得分:0)

即使我正确引用了所有.dll,我也有这个确切的错误消息。 我的解决方案是重新生成功能文件。 (右键单击项目并选择&#34;重新生成要素文件&#34;)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我有同样的问题,发现以下解决方案效果很好: http://blog.majcica.com/2015/05/07/getting-started-with-specflow-and-codedui/