gpt4 book ai didi

F#单元测试: nunit.框架程序集未引用错误

转载 作者:行者123 更新时间:2023-12-02 01:41:22 25 4
gpt4 key购买 nike

我正在使用 F# 进行单元测试。我正在运行 Visual Studio 2013 社区版。我创建了一个测试项目并安装了 NUnit 2.6.4FsUnit 1.3.0.1。我使用了包管理器控制台。我在项目和脚本文件中添加了对库的引用,我引用了 DLL 并添加了 open 子句:

#r @"C:\Users\pw\Documents\Visual Studio 2013\Projects\FSharpForQuantFirst\packages\FsUnit.1.3.0.1\Lib\Net40\FsUnit.NUnit.dll"
#r @"C:\Users\pw\Documents\Visual Studio 2013\Projects\FSharpForQuantFirst\packages\NUnit.2.6.4\lib\nunit.framework.dll"

open NUnit.Framework
open NUnit.Framework.Constraints
open FsUnit

1 |> should equal 1

我的代码中既没有错误也没有警告。但是,当我在 F# Interactive 中运行代码时,最后一行会触发以下错误:

Test.fsx(8,6): error FS0074: The type referenced through 'NUnit.Framework.Constraints.Constraint' is defined in an assembly that is not referenced. You must add a reference to assembly 'nunit.framework'.

但我已经添加了对 nunit.framework 的引用。

我清理了项目,重新安装了包,删除并添加了引用,但结果是一样的。我仍然得到错误。知道问题是什么以及如何解决吗?

最佳答案

如果您可能已经注意到,有一个 app.config 带有 nunit.framework 的绑定(bind)重定向。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.4.14350" newVersion="2.6.4.14350" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

F# Interactive 不考虑这一点,因此您必须使用 FsUnit.NUnit.dll 引用的 NUnit 2.6.3

请将 NUnit 降级到 2.6.3 并确保重置 F# Interactive session 。

关于F#单元测试: nunit.框架程序集未引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com