我整个上午一直在网上寻找答案,我已经尝试了很多建议,虽然所有的解决方案似乎都适用于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?我错过了设置步骤吗?或者这真的与我的注册表文件/引用有关。错误令人困惑,因为我不知道为什么它试图找到该引用,特别是当我尝试手动找到它时,我无法找到该引用。我有兴趣知道您是否遇到此错误并设法解决它,或者您是否可以解释您的设置步骤,以便我可以检查我没有错过任何内容。
谢谢!
答案 0 :(得分:4)
我相信你可能会错过一些必需的dll的引用。我刚刚完成了使用我的MS Visual Studio 2013终极版上的Specflow,codedUI测试项目创建的测试,它运行得很好。
以下是我遵循的步骤:
为项目添加了对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
在解决方案中添加了一个单独的CodedUI项目,并将该项目的引用添加到类库项目中。
在步骤定义中创建一个新的Specflow特征文件及其一些测试和创建步骤,并引用您在步骤定义中在CodedUI项目中创建或记录的函数。
注意:如果您要创建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/