2010-05-06 56 views
1

钻机:WIN7 64位,VS2010,MVC V2,TestDriven.Net 3.0,整形器5.0,MSpec 0.3帮助配置MSpec

最近,我开始一个新项目,需要使用mspec。 (2)将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菜单 - > ReSharper - > Options - > Tools - > Unit Testing也显示了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,版本= 0.3.0.0,文化=中立, PublicKeyToken = null'或它的一个依赖关系。该系统找不到指定的文件。 System.IO.FileNotFoundException:无法加载文件或程序集“Machine.Specifications,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null”或其某个依赖项。该系统找不到指定的文件。 at Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember(ITestListener testListener,Assembly assembly,MemberInfo member) at TestDriven.TestRunner。'Machine.Specifications,Version = 0.3.0.0,Culture = neutral,PublicKeyToken = null' AdaptorTestRunner.Run(ITestListener testListener,ITraceListener的TraceListener,字符串assemblyPath,字符串testPath) 在TestDriven.TestRunner.ThreadTestRunner.Runner.Run()

回答

3

你不需要在任何地方复制Machine.Specifications.TDNetRunner.dll,只是把它放在你的项目的toolslib目录,即你在哪里保持你的项目的依赖关系。包含MSpec测试的项目将参考此目录中的Machine.Specifications.dll。只要Machine.Specifications.dll.tdnet位于相同的目录中,TestDriven.Net> = 2.24将能够获取TD.Net亚军。我喜欢组织我的tools目录的示例可以在here找到。

您的ReSharper 5.0插件目录看起来不错。但是,我有用户报告说,当您使用Explorer解压MSpec zip文件(您可能从http://teamcity.codebetter.com下载)时,Windows会将提取的DLL标记为从Internet下载。

您可以通过打开每个DLL的属性并单击第一个属性页上的“取消阻止”来确保Windows不会阻止<ReSharper 5.0>\bin\plugins中的DLL。如果“解除阻止”按钮没有显示,您的文件没问题。在这种情况下,请张贴在这里,我们将看到我们如何可以MSpec插件工作。

+0

我得为我的项目类似的“ReferencedAssemeblies”目录。我做了你所建议的一切,仍然没有工作。 我加入完整的错误我原来的帖子,因为它不适合这里。 – CurlyFro 2010-05-06 19:51:21

+0

您可以请尝试使用进程监视器来查看运行测试时是否找不到Machine.Specifications.dll?作为另一种选择,尝试将您的测试程序集构建为x86。 ReSharper跑步者是否适合你? – 2010-05-06 21:02:04

+0

我感到沮丧,并开始一个新的项目,它的工作。谢谢你的帮助。 – CurlyFro 2010-05-07 18:47:05

0

改变你应该清理项目的所有DLL之后 - 所以你不必在新项目中的任何错误。

0

我也有同样的问题,我固定它通过克隆MSpec的副本关闭Github上(https://github.com/machine/machine.specifications)。

然后在“Source”文件夹中,我运行了其中一个在“xxx \ Source \ Build \ Debug”中创建“Machine.Specifications.dll”的批处理文件(在我的情况下为build-4.0-debug.cmd)。

我删除引用“老”的dll,清理我的项目,复制了旧的DLL与我在上一步中获得新的DLL,改建,该诀窍。