MissingMethodException при тестировании функции, которая принимает параметр функции
Я использую FsUnit 2.1 (с NUnit 3.2) для написания тестов для проекта F #. Вот простой модуль:
namespace Library1
module LibraryFunctions =
let Execute f1 = f1()
let Id x = x
И вот мои тесты:
namespace Tests
open FsUnit
open NUnit.Framework
open Library1
[<TestFixture>]
type Tests() =
[<Test>]
// Passes
member x.``LibraryFunctions.Id should return the value``() =
LibraryFunctions.Id 42 |> should equal 42
[<Test>]
// Fails
member x.``LibraryFunctions.Execute should return the result of the function``() =
let f() = 42
LibraryFunctions.Execute f |> should equal 42
Второй тест не пройден (в NCrunch и ReSharper) с сообщением:
System.MissingMethodException : Method not found: '!!0 Library1.LibraryFunctions.Execute(Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit,!!0>)'.
Если я помещаю тестируемый модуль в тот же файл кода, что и тесты (а не в отдельный проект VS), тест проходит. Я подозреваю, что это связано с некоторой проблемой взаимодействия NUnit и F # / C #. Если так, как это может быть решено?