rig:win7 64bit,vs2010,mvc v2,TestDriven.Net 3.0,Reshaper 5.0,MSpec 0.3
我最近开始了一个新项目,并希望使用mspec。
(1)将Machine.Specifications.ReSharperRunner.5.0.dll和Machine.Specifications.dll复制到JetBrains \ ReSharper \ 5.0 \ Bin \ Plugins \ Machine.Specifications(2)将Machine.Specifications.TDNetRunner.dll复制到TestDriven。 NET 3 \ Machine.Specifications
当我尝试运行测试时出现此错误:System.IO.FileNotFoundException:无法加载文件或程序集'Machine.Specifications
我不知道这个错误来自哪里。
vs2010菜单 - > ReSharper - >插件显示MSpec插件。 vs2010 menu - > ReSharper - >选项 - >工具 - >单元测试还显示了MSpec单元测试提供程序,但是当我点击它时,它没有显示任何细节,就像MSTest和nUnit一样。
我发现这个:http://marcinobel.com/index.php/mspec-bdd-installer/没有用。我也试过这个:http://eduncan911.com/blog/registering-mspec-runners-for-testdriven-net-on-windows-x64.aspx这也没用。现在我担心我搞砸了我的注册表。
任何指导?
完整错误:
测试'F:Tests.OTBRadio.Tasks.AlbumTasksSpecs.when_the_album_tasks_are_asked_to_get_all.context'失败:无法加载文件或程序集'Machine.Specifications,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖。该系统找不到指定的文件。 System.IO.FileNotFoundException:无法加载文件或程序集'Machine.Specifications,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。该系统找不到指定的文件。 文件名:'Machine.Specifications,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null' 在Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember(ITestListener testListener,Assembly assembly,MemberInfo成员) 在TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener,ITraceListener traceListener,String assemblyPath,String testPath) 在TestDriven.TestRunner.ThreadTestRunner.Runner.Run()
答案 0 :(得分:3)
您无需在任何地方复制Machine.Specifications.TDNetRunner.dll
,只需将其放在项目的tools
或lib
目录中,即保留项目依赖项的位置。包含MSpec测试的项目将引用此目录中的Machine.Specifications.dll
。只要Machine.Specifications.dll.tdnet
位于同一目录中,TestDriven.Net> = 2.24就可以选择TD.Net运行器。我可以在here找到我喜欢组织tools
目录的示例。
您的ReSharper 5.0插件目录对我来说很好。但是,我有用户报告,当您使用资源管理器解压缩MSpec zip文件(您可能从http://teamcity.codebetter.com下载)时,Windows会将提取的DLL标记为从Internet下载。
是否可以通过打开每个DLL的属性并单击第一个属性页上的“取消阻止”来确保Windows不会阻止<ReSharper 5.0>\bin\plugins
中的DLL。如果未显示“取消阻止”按钮,您的文件就可以了。在这种情况下,请在此处发布,我们将看到您的MSpec插件如何工作。
答案 1 :(得分:0)
更改任何dll之后,您应该清理项目 - 这样您在新项目中就没有任何错误。
答案 2 :(得分:0)
我也有同样的问题,我通过克隆Github的MSpec副本来修复它(https://github.com/machine/machine.specifications)。
然后在“Source”文件夹中,我运行了一个批处理文件(在我的例子中是build-4.0-debug.cmd),它在“xxx \ Source \ Build \ Debug”中创建了“Machine.Specifications.dll”。 / p>
我删除了对“旧”dll的引用,清理了我的项目,使用我在上一步中获得的新dll复制了旧的dll,重建并完成了这一操作。