我正在尝试让 Unquote 库与 .NET 4 中的 xUnit 一起工作,但我根本没有任何运气来运行测试。所以,我把它分解成我能做到的最简单的复制步骤。有人知道我可能会错过什么吗?
我直接从 Unquote 主页获得了实际测试,但内容无关紧要,因为它没有运行。
module Tests
open Xunit
open Swensen.Unquote
[<Fact>]
let ``demo Unquote xUnit support`` () =
test <@ ([3; 2; 1; 0] |> List.map ((+) 1)) = [1 + 3..1 + 0] @>
然后我编译程序集并将其加载到 xUnit.net GUI 测试运行器(64 位,CLR 4)中,并在运行测试时收到以下错误:
Tests.demo Unquote xUnit support : System.MissingMethodException : Method not found:
'Microsoft.FSharp.Collections.FSharpList`1<Microsoft.FSharp.Quotations.FSharpExpr> Swensen.Unquote.Extensions.Expr.ReduceFully(Microsoft.FSharp.Quotations.FSharpExpr)'.
Stack Trace:
at Tests.demo Unquote xUnit support()
最佳答案
没关系,我想通了。我正在使用 VS 11 预览版,即使我在我的项目中针对 .NET 4.0,该项目也引用了错误版本的 FSharp.Core.dll:
C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0\FSharp.Core.dll
我把它改成引用这个,一切都开始正常工作了:
C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v4.0\FSharp.Core.dll
关于unit-testing - 取消引用 : What am I missing?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7828852/