问题标签 [fscheck]
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.
unit-testing - Difficulty thinking of properties for FsCheck
I've managed to get xUnit working on my little sample assembly. Now I want to see if I can grok FsCheck too. My problem is that I'm stumped when it comes to defining test properties for my functions.
Maybe I've just not got a good sample set of functions, but what would be good test properties for these functions, for example?
f# - FsCheck NUnit 。有条件的测试
我正在尝试对此功能进行测试
使用 FsCheck 所以我有这个
但我会看到异常“替代扩展的树不正确!” 但是当我这样使用时
NUnit 不会停止工作 为什么会这样?
f# - 在 FsCheck 中,如何生成非负字段的测试记录?
在 F# 中,我有一个包含几个字段的记录:
我正在使用 FsCheck 来测试一些使用此记录的属性。对于(一个人为的)示例,
由于myFunction的内部实现限制,我想让 FsCheck 创建测试用例,其中每个字段 a、b、c 都限制为非负浮点数。
我怀疑这需要为myRecord创建一个生成器,但我无法找到任何有关如何执行此操作的示例。
任何人都可以提供指导吗?
f# - FSCheck 生成特定大小的列表
可能是一个愚蠢的问题,但是如何为 FSCheck 生成特定大小的列表?
我可以限制使用:
但是,显然,这会丢弃大量列表。
这里仅对fn_of_2
长度列表进行一些测试2
并返回true
or false
。
f# - 使用 FSCheck 生成器
我有一个函数可以在一个范围内生成双打:
然后是一个生成其中 2 个数组的函数:
我放:
在生成器类中并注册它。一切似乎都很好。为了测试这一切都可以,我有:
然后使用数组生成器'arrayOfLength':
可以按预期工作,但是:
刚开始做一些计算,再也没有回来。f# 大师请帮忙。
.net - FsCheck 和 NUnit 集成
我想将 FsCheck 测试与 NUnit 测试集成。具体来说,当我声明几个 FsCheck 属性时,我希望它们在 VS 运行程序中是可见和可运行的。我在 FsCheck 旁边找到了以下关于 xUnit 使用的描述(在“实现 IRunner 以将 FsCheck 与 mb|x|N|cs|Unit 集成”下),但这不是我想要的。有没有办法做到这一点?
f# - 如何使用 fscheck 生成数据?
是否可以使用 fscheck 生成数据,特别是列表,以便在 fscheck 之外使用?我无法调试 fscheck 测试中看起来比较结果相等的情况,但 fscheck 说它们不是。
我有一个对象列表的生成器。如何生成可以从此生成器使用的列表?
.net - 在 VS 2010 中使用 FsCheck
我正在尝试在 Visual Studio 2010 中为 F# 使用 FsCheck 0.8.3。我创建了一个项目,并编写了示例行:
从快速入门指南。在此之后,我将 FsCheck.dll 添加到引用中,并且
在顶部。
跑步时,我收到
未定义命名空间或模块“FsCheck”
如果答案很明显,请原谅我,但我很新,不明白为什么这不起作用。
testing - 使用 FsCheck 时的异常
使用 xUnit 运行 FsCheck 中最简单的测试
我收到异常
我试图捕捉异常并调试,但发生在之前有人知道如何解决这个问题吗?
重现方式:
- 做一个新项目
- 安装 FsCheck.xUnit NUget
- 将该代码放入 fs 文件中
- 运行测试
.net - 多个环境中的程序集重定向/例如,对于 F# 4.0.0.0
我收到了一台新机器,并认为插入一些机器范围的重定向只适用于我的 FsCheck 测试,就像在我以前的机器上一样。
事实并非如此,我收到了 与旧机器上类似的错误,所以我知道这是 FsCheck 加载 F# 4.X 而我的测试绑定到其他一些版本 4.Y
启用 FusionLog 后,重新启动以激活该野兽,为所有绑定启用 fusionlog,重新启动。我在日志中找到了罪魁祸首:
装配管理器加载自:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 在可执行文件下运行 C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 11.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\vstest.executionengine.x86 。可执行程序
=== 预绑定状态信息 ===
日志:DisplayName =FSharp.Core,版本 = 4.0.0.0,文化 = 中性,
调用程序集:FsCheck.Xunit,Version=0.3.0.0,Culture=neutral,PublicKeyToken=null。
我对绑定不太熟悉,但是:
为什么 fscheck 在运行测试之前没有抱怨它找到正确的 dll 而不是在运行时崩溃。我有兴趣知道什么是处理此类问题的优雅方式
如果 fscheck 不兼容,为什么要尝试加载版本 4.0.0.0。再次尝试理解我必须缺少的东西,因为这听起来很明显。我想这不是支持 4.X VS 4.Y 的问题,而是更多的“跑步者”被绑定到 4.X 而 fscheck 被绑定到 4.Y(是吗?在这种情况下,什么会阻止'重用'第一个绑定?)
为什么我的机器范围的重定向被忽略了。我想它的优先级低于任何其他本地配置文件,但 dotnet 框架不应该在解决之前的某个阶段对其进行调查。
显然我添加了以下内容以vstest.executionengine.x86.exe.config
避免 4.0.0 绑定,但我仍然对我的无知和我们的“框架”的变幻莫测所引起的变迁感到困惑: