在尝试MathNet Numerics
从GitHub构建最新版本时Visual Studio Community 15
,MathNet.Numerics.sln
需要安装用于单元测试的 DLL。
Could not resolve this reference. Could not locate the assembly "FsUnit.CustomMatchers".
Could not resolve this reference. Could not locate the assembly "FsUnit.NUnit".
Could not resolve this reference. Could not locate the assembly "nunit.framework".
因此,在 Visual Studio 中使用 NuGet 可以成功安装以下内容。
Successfully installed 'NUnitTestAdapter.WithFramework 2.0.0' to UnitTests
Successfully installed 'FSharp.Core 3.1.2.5' to FSharpUnitTests
Successfully installed 'NUnit 3.0.1' to FSharpUnitTests
Successfully installed 'FsUnit 2.0.0' to FSharpUnitTests
剩下的唯一DLL是
FsUnit.CustomMatchers
我无法找到。
提示是..\..\packages\test\FsUnit\lib\FsUnit.CustomMatchers.dll
,但下没有test
目录packages
。
我该如何正确解决这个问题?
我需要 DLL,如果需要,它在哪里?
我需要手动修复代码吗?
我需要更新提示吗?
TLDR;
如果我在没有丢失 DLL 的情况下构建,则基本错误是:
A unique overload for method 'IsTrue' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates:
Assert.IsTrue(condition: Nullable<bool>, message: string, [<ParamArray>] args: obj []) : unit,
Assert.IsTrue(condition: bool, message: string, [<ParamArray>] args: obj []) : unit
可以通过安装解决
Microsoft.VisualStudio.QualityTools.UnitTestFramework
并添加
open Microsoft.VisualStudio.TestTools.UnitTesting
签名为
Assert.IsTrue(condition: bool, message: string, [<ParamArray>] args: obj []) : unit
但这不正确,因为它没有安装正确的 DLL ( Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
vs FsUnit.CustomMatchers
),并且根据过去的 F# 单元测试经验,我知道这样做可能会导致误报的字幕。
编辑:
成功安装后,我想知道这是在哪里记录的。
请参阅:构建 Math.NET 数值
unit tests
包括文档和 api 参考、NuGet 和 Zip 包在内的全自动构建使用 FAKE。