问题标签 [fsunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
410 浏览

f# - 单元测试:'[] |> 应该等于 List.empty' 没有按预期工作

我有以下代码,但测试失败:

测试失败,出现以下匹配错误

FsUnit.Xunit+MatchException:抛出了“FsUnit.Xunit+MatchException”类型的异常。预期:等于 []
实际:是 []

0 投票
1 回答
656 浏览

visual-studio - 为什么 NUnit 测试适配器找不到我的 FsUnit 测试?

我正在使用 Visual Studio Professional 2015,并且安装了 NUnit 测试适配器的 2.0.0.0 版本。

它没有发现任何有关构建以下代码的测试:

我引用了 FsUnit (2.1.0) 和 NUnit (3.2.0) 并且测试在 F# 交互中运行良好。

如何让测试出现在测试资源管理器中?

0 投票
3 回答
2662 浏览

visual-studio-2013 - Visual Studio FsUnit 测试设置 - 异常 NUnit.Engine.NUnitEngineException

我正在使用 Visual Studio 2013,安装了 FsUnit 2.2.0,它需要 NUnit 3.2.1 和 FSharpCore 3.1。我创建了一个单独的测试项目,并在其中放置了一个测试装置和测试。我的平台是 x64 Win 10。配置适用于“AnyCPU”和“调试”。我已经尝试过 x86 和 x64 的测试设置。在尝试构建和创建测试时,我得到:

如果我将测试项目和目标项目的配置更改为“x86”(而不是 AnyCPU),那么基本项目的错误就会消失,但测试项目也会发生同样的事情。

没有发现任何测试,请帮助...非常感谢!

0 投票
1 回答
149 浏览

f# - 如何在 FsUnit 的断言中忽略有区别的联合案例的价值?

如何在 FsUnit 的断言中忽略有区别的联合案例的价值?

举个例子:

在我的测试中,我想这样做:

我不介意这样做:

但是,我被迫这样做:

请注意我必须对上面的表达式表达多么明确。

因此,我只想知道它是否被拒绝。我不在乎细节。

下面是实际测试:

这是功能:

这是整个域:

0 投票
0 回答
204 浏览

f# - FsUnit.xUnit FSharp.Core 程序集绑定

我正在尝试使用 FSUnit.xUnit 编写一个单元测试项目。

在我对此过程的整个开发过程中,我一直受到测试失败并显示此消息的困扰(并不总是引用相同的版本):

添加绑定重定向似乎没有效果。我最近的一个是:

到目前为止唯一有效的是降级 FSharp.Core NuGet 包,但在这个最新的版本中,即使这也失败了。

我在这个问题上浪费了很多时间。任何帮助将不胜感激。

更新

据我所知,这是由于 Json.NET 中的一个错误。测试正在运行,但是在我序列化和反序列化可区分联合时,程序集中会引发错误。我在 Json.NET 中提交了一个问题。

进一步更新

我正在从针对 F# 版本 4.4.0.0 的测试项目中调用 Json.NET 序列化程序,并且我尝试序列化的对象是在具有 Profile259(portable-net45+netcore45+wpa81+wp8)的便携式程序集中定义的。可移植程序集包含相同的绑定重定向。

0 投票
1 回答
382 浏览

f# - 如何使用 FsCheck 实现多参数生成?

如何使用 FsCheck 实现多参数生成?

我实现了以下内容以支持多个参数生成:

然后,我使用这些参数来测试负责为给定检查器生成移动选项的函数的行为:

在管理多个生成的参数类型时,嵌套 Prop.forAll 表达式是正确的技术吗?

是否有另一种方法可以为被测函数生成多个参数?

这是整个函数:

更新

这是我从马克的回答中得出的问题的解决方案:

0 投票
2 回答
323 浏览

f# - FsUnit:无法测试可移植库,因为它和测试项目具有不同的 F#.Core 版本

我有一个便携式库,其FSharp.Core版本为3.7.4.0. 安装(在单元测试项目中)FsUnit作为依赖项安装FSharp.Coreversion 3.1.2.5

因此,在我的单元测试项目中使用可移植库的功能,例如:

产生错误:

结果消息:System.IO.FileLoadException:无法加载文件或程序集“FSharp.Core,Version=3.7.4.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

尝试将FSharp.Core版本从 NuGet 更新为4.0.0.1(甚至在更新时检查两个项目),现在甚至是一些简单的东西,例如:

不起作用,给出类似的错误。

结果消息:System.IO.FileLoadException:无法加载文件或程序集“FSharp.Core,Version=4.3.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

第一次失败测试的错误不会改变。

我觉得我错过了一些非常明显的东西,我发现几个人有类似的问题,但我不明白他们做了什么来解决它(他们似乎都解决了它..)例如这个

编辑

这两个项目都是库,我没有app.config要添加任何内容的文件。

0 投票
2 回答
667 浏览

f# - 在 FsUnit F# for XUnit 中断言异常

我试图断言抛出了异常。这是重现该问题的一段精简代码:

该错误表明抛出了 System.Exception 但测试应该通过,因为这就是我所断言的。有人可以帮忙解决我哪里出错了。

0 投票
1 回答
167 浏览

f# - FsUnit 不会匹配异常 - F#

我正在尝试使用基于 XUnit 构建的 FsUnit 来断言异常。我从FsUnit 网站上进行了这个测试:

我正在使用 Resharper 2016 运行测试,但出现以下错误:

我正在使用所涉及的库的以下版本:

  • FSharp.Core:4.0.0.1
  • .Net:4.6.2
  • FsUnit.Xunit:1.4.1.0
  • XUnit.core:2.1.0

我认为这可能是 XUnit 的问题,所以我尝试切换到使用基于 NUnit 的 FsUnit,并进行以下测试:

NUnit 版本抛出一个MissingMethodException

任何帮助将不胜感激,因为我对此束手无策。

0 投票
2 回答
470 浏览

f# - F# 如何设置可以使用 FsUnit 的 FAKE 项目

我正在尝试设置一个可以运行 FsUnit 的基本 FAKE F# 项目,但我不知道如何解决这些Method not found: 'Void FsUnit.TopLevelOperators.should(Microsoft.FSharp.Core.FSharpFunc`2<!!0,!!1>, !!0, System.Object)'错误。

我已经阅读了以下似乎相关的帖子,但我显然仍然没有理解它:

我创建了一个JunkTest具有以下设置的库项目:

包依赖项

paket.references

垃圾测试文件

build.fsx(相关部分)

输出

我看到 FSharp.Core.dll 正在从本地packages目录复制: Copying file from "c:\Users\dangets\code\exercism\fsharp\dgt\packages\FSharp.Core\lib\net40\FSharp.Core.dll" to "c:\Users\dangets\code\exercism\fsharp\dgt\build\FSharp.Core.dll".

和 nunit3-console 执行: c:\Users\dangets\code\exercism\fsharp\dgt\packages\NUnit.ConsoleRunner\tools\nunit3-console.exe "--noheader" "--output=TestResults" "c:\Users\dangets\code\exercism\fsharp\dgt\build\JunkTest.dll"

我试图app.config在测试项目根目录中添加一个文件,但它似乎没有解决问题(注意我没有使用 Visual Studio - 我需要为项目做任何特殊的事情来包含app.config文件?):

任何和所有的帮助表示赞赏。

编辑:解决方案是我没有正确设置App.config文件以包含在构建中。所有说“只需将其添加到您的App.config文件”的答案都对我没有帮助,因为 VSCode 不会fsproj自动将其添加到文件中。

我添加的部分是:

ItemGroup包含其他<Compile Include=Foo.fs>行的那个中。