我正在使用 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#
?