FsUnit 不会匹配异常 - F#
FsUnit won't match exception - F#
我正在尝试使用基于 XUnit 构建的 FsUnit 断言异常。我已经从 FsUnit website:
参加了这个测试
[<Fact>]
let ``boom`` () =
(fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>
我正在使用 Resharper 2016 进行 运行 测试,但出现以下错误:
FsUnit.Xunit+MatchException
Exception of type 'FsUnit.Xunit+MatchException' was thrown.
Expected: System.Exception
Actual: was SqlJuxtFunctionalTests.Scenarios.CompareTableScenarios+boom@22
at SqlJuxtFunctionalTests.Scenarios.CompareTableScenarios.boom() in C:\projects\SqlJuxt\src\SqlJuxtFunctional.Tests\CompareTableScenarios.fs:line 22
我正在使用以下版本的相关库:
- FSharp.Core : 4.0.0.1
- .Net : 4.6.2
- FsUnit.Xunit : 1.4.1.0
- XUnit.core : 2.1.0
我认为这可能是 XUnit 的问题,所以我尝试通过以下测试切换到使用基于 NUnit 的 FsUnit:
[<Test>]
let ``boom nunit`` () =
(fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>
NUnit 版本抛出 MissingMethodException
:
System.MissingMethodException : Method not found: 'Void FsUnit.TopLevelOperators.should(Microsoft.FSharp.Core.FSharpFunc`2<!!0,!!1>, !!0, System.Object)'.
at File1.boom()
任何帮助将不胜感激,因为我对此束手无策。
我已经弄明白了。为了使测试正常进行,我需要使用基于 NUnit 的 FsUnit 并将 FSharp 降级为使用 FSharp 3.1.2.5。如果您使用基于 NUnit 和 FSharp 4.0.0.1 的 FsUnit,那么您会得到可怕的 MissingMethodException
.
我无法弄清楚为什么代码在 FsUnit.Xunit 上不起作用。
我正在尝试使用基于 XUnit 构建的 FsUnit 断言异常。我已经从 FsUnit website:
参加了这个测试[<Fact>]
let ``boom`` () =
(fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>
我正在使用 Resharper 2016 进行 运行 测试,但出现以下错误:
FsUnit.Xunit+MatchException
Exception of type 'FsUnit.Xunit+MatchException' was thrown.
Expected: System.Exception
Actual: was SqlJuxtFunctionalTests.Scenarios.CompareTableScenarios+boom@22
at SqlJuxtFunctionalTests.Scenarios.CompareTableScenarios.boom() in C:\projects\SqlJuxt\src\SqlJuxtFunctional.Tests\CompareTableScenarios.fs:line 22
我正在使用以下版本的相关库:
- FSharp.Core : 4.0.0.1
- .Net : 4.6.2
- FsUnit.Xunit : 1.4.1.0
- XUnit.core : 2.1.0
我认为这可能是 XUnit 的问题,所以我尝试通过以下测试切换到使用基于 NUnit 的 FsUnit:
[<Test>]
let ``boom nunit`` () =
(fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>
NUnit 版本抛出 MissingMethodException
:
System.MissingMethodException : Method not found: 'Void FsUnit.TopLevelOperators.should(Microsoft.FSharp.Core.FSharpFunc`2<!!0,!!1>, !!0, System.Object)'.
at File1.boom()
任何帮助将不胜感激,因为我对此束手无策。
我已经弄明白了。为了使测试正常进行,我需要使用基于 NUnit 的 FsUnit 并将 FSharp 降级为使用 FSharp 3.1.2.5。如果您使用基于 NUnit 和 FSharp 4.0.0.1 的 FsUnit,那么您会得到可怕的 MissingMethodException
.
我无法弄清楚为什么代码在 FsUnit.Xunit 上不起作用。