我正在使用 VSCode 和 Ionide 软件包套件在 F# 中创建控制台应用程序。我需要向应用程序添加单元测试,以便在我ctrl+shift+p FAKE: Build进行项目时,测试在构建过程中运行。
作为示例,我在 Github 中创建了一个虚拟项目。
最初,test目录不在那里。我创建了test目录并在该文件夹中创建了第二个项目TestProj.Test(事后看来,我应该使用更具描述性的名称)用于测试目的。我将.fsproj文件添加TestProj到这个项目中,以便我可以引用SimpleFunctions.fs. NUnit.Framework并FsUnit添加到TestProj.Test. Test.fs包含两个简单的测试。
我故意将其创建TestProj.Test为 F# library,因为我在 SO 上读到测试项目需要是一个库而不是控制台应用程序。
我将第 9、31-37 和 47 行添加到build.fsx来自 Ionide 的默认文件中。. 但是,当我构建整个项目(即TestProj)时,构建失败并且出现以下错误:
1) System.Exception: NUnit: cannot run tests (the assembly list is empty).
at Fake.NUnitSequential.NUnit(FSharpFunc`2 setParams, IEnumerable`1 assemblies) in C:\code\fake\src\app\FakeLib\UnitTest\NUnit\Sequential.fs:line 22
at FSI_0005.Build.clo@31-3.Invoke(Unit _arg3)
at Fake.TargetHelper.runSingleTarget(TargetTemplate`1 target) in C:\code\fake\src\app\FakeLib\TargetHelper.fs:line 492
Sequential.fs建议的第 22 行assemblies是空的。
我究竟做错了什么?我应该如何设置build.fsx文件以使测试TestProj.test成功运行?或者, 中的Tests.fs文件有问题TestProj.Test吗?这似乎特别困难;是否有更简单的方法来包含使用 VSCode、Iondide 和 自动运行的测试F#?