gpt4 book ai didi

f# - 使用 Unquote 断言时的 MissingMethodException

转载 作者:行者123 更新时间:2023-12-04 17:52:33 25 4
gpt4 key购买 nike

我正在尝试使用 unquote以 NUnit 作为测试运行器。测试用例取自Getting Started在 NUnit 之外运行时按预期工作:

namespace FsTest.Tests

open NUnit.Framework
open Swensen.Unquote

[<TestFixture>]
module Example =

[<Test>]
let foo() =
test <@ (1+2)/3 = 1 @>

在 NUnit 下我得到这个异常:

FsTest.Tests.Example.foo: System.MissingMethodException : Method not found: 'System.Tuple2<Microsoft.FSharp.Collections.FSharpList1,Microsoft.FSharp.Quotations.FSharpExpr> Internal.reduceFullyAndGetLast(Microsoft.FSharp.Quotations.FSharpExpr)'.



我想知道上面的代码是否有问题以及如何使它工作。取消引用的 raise如果有帮助,我也会以同样的方式失败。

最佳答案

根据您对问题的描述,我怀疑您需要使用 FSharp.Core 配置您的 NUnit 项目。绑定(bind)重定向从版本 4.0.0.0 到版本 4.3.0.0,因为最新版本的 Unquote 是为 .NET 4.0 构建的,并且您的测试项目以 .NET 4.5 为目标。

this取消引用问题以获取详细信息。我相信您的配置看起来像

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<legacyUnhandledExceptionPolicy enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="FSharp.Core"
publicKeyToken="b03f5f7f11d50a3a"
culture="neutral"/>
<bindingRedirect
oldVersion="2.0.0.0"
newVersion="4.3.0.0"/>
<bindingRedirect
oldVersion="4.0.0.0"
newVersion="4.3.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

我不确定您需要将它放在 NUnit 项目的确切位置,但可能在通过 Project Editor 指定的配置文件中。 ?

不幸的是,我没有安装 VS2012,所以我无法真正为您诊断这个问题。

关于f# - 使用 Unquote 断言时的 MissingMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846561/

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