帮助配置MSpec

时间:2010-05-06 15:52:45

标签: unit-testing resharper testdriven.net mspec

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()

3 个答案:

答案 0 :(得分:3)

您无需在任何地方复制Machine.Specifications.TDNetRunner.dll,只需将其放在项目的toolslib目录中,即保留项目依赖项的位置。包含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,重建并完成了这一操作。