【问题标题】:Help configuring MSpec帮助配置 MSpec
【发布时间】:2010-05-06 15:52:45
【问题描述】:

钻机: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 ->Plugins 显示 MSpec 插件。 vs2010 菜单 -> 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,版本=0.3.0.0,文化=中性,PublicKeyToken=null”或其之一依赖关系。该系统找不到指定的文件。 System.IO.FileNotFoundException:无法加载文件或程序集“Machine.Specifications,版本=0.3.0.0,文化=中性,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。 文件名:'Machine.Specifications,Version=0.3.0.0,Culture=neutral,PublicKeyToken=null' 在 Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember(ITestListener testListener,Assembly 程序集,MemberInfo 成员) 在 TestDriven.TestRunner.AdaptorTestRunner.Run(ITestListener testListener,ITraceListener traceListener,字符串 assemblyPath,字符串 testPath) 在 TestDriven.TestRunner.ThreadTestRunner.Runner.Run()

【问题讨论】:

    标签: unit-testing resharper testdriven.net mspec


    【解决方案1】:

    您不需要将Machine.Specifications.TDNetRunner.dll 复制到任何地方,只需将其放在项目的toolslib 目录中,即您保留项目依赖项的位置。包含 MSpec 测试的项目将引用此目录中的 Machine.Specifications.dll。只要Machine.Specifications.dll.tdnet 位于同一目录中,TestDriven.Net >=2.24 就可以获取 TD.Net runner。我喜欢如何组织我的tools 目录的示例可以在here 找到。

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

    您能否通过打开每个 DLL 的属性并单击第一个属性页上的“取消阻止”来确保 Windows 不会阻止 <ReSharper 5.0>\bin\plugins 中的 DLL。如果未显示“取消阻止”按钮,则您的文件没问题。在这种情况下,请在此处发布,我们将看看您的 MSpec 插件如何工作。

    【讨论】:

    • 我的项目有一个类似的“ReferencedAssemeblies”目录。我做了你建议的一切,仍然没有工作。我将完整的错误添加到我的原始帖子中,因为它不适合这里。
    • 您能否尝试使用进程监视器查看运行测试时是否找不到 Machine.Specifications.dll?作为另一种选择,尝试将您的测试程序集构建为 x86。 ReSharper 跑步者是否适合您?
    • 我很沮丧,开始了一个新的项目,它奏效了。感谢您的帮助。
    【解决方案2】:

    更改任何 dll 后,您应该清理项目 - 这样您就不会在新项目中出现任何错误。

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,我通过从 Github (https://github.com/machine/machine.specifications) 克隆 MSpec 的副本来解决它。

      然后在“源”文件夹中,我运行了一个批处理文件(在我的例子中是 build-4.0-debug.cmd),它在“xxx\Source\Build\Debug”中创建了“Machine.Specifications.dll”。

      我删除了对“旧”dll 的引用,清理了我的项目,用我在上一步中获得的新 dll 复制了旧 dll,重新构建了这个技巧。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 2011-10-26
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-09
        相关资源
        最近更新 更多