问题标签 [ounit]

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 投票
1 回答
2211 浏览

unit-testing - 在 OCaml 中为模块编写单元测试的正确方法

我在module.mli文件中有一个给定的接口规范。我必须在module.ml文件中写下它的实现。

module.mli提供抽象类型

我正在使用 OUnit 来创建测试。我需要在其中使用类型的实现。(例如比较值)一种解决方案是扩展接口以包含测试中使用的附加功能。

但是有没有可能在不修改界面的情况下做这样的事情呢?

0 投票
1 回答
420 浏览

unit-testing - OUnit:断言值是类型的实例

使用 OCaml 中的OUnit单元测试框架,我想测试评估函数的结果是指定类型的实例。

在 Python 的PyTest中定义这样的测试将按如下方式完成:

如何将此逻辑转换为 OUnit?也就是说,如何指定类型成员的断言?

我知道,假设被测函数用正确的类型签名进行了注释,那么这个测试可能是不必要的。

0 投票
1 回答
1518 浏览

ocaml - 使用 dune 运行 OUnit 测试

我在运行 OUnit 测试时遇到了困难,主要是因为我对沙丘和 OUnit 都不熟悉。dune我跑步时抱怨dune runtest

这是项目结构:

这是dune

这是test/dune

我可以看到出现错误是因为 dune 不知道f.ml,因此不知道fdune 文件中的 about 。

如何以了解我使用的库f.ml的方式进行 dune 编译?如何正确运行单元测试?test/duneftest/f_test.ml

0 投票
0 回答
41 浏览

ocaml - 是否可以在 Ocaide 中使用 OUnit?

我正在尝试在 Eclipse 中使用 Ocaide,并且需要使用 OUnit。我找到的所有说明都是在命令行中使用它。我尝试通过添加来编辑运行配置,-pkgs oUnit但这不起作用。我在其他地方找到了带有标志和参数的指令,-package oUnit -linkpkg -g因此我尝试将其放入,但 IDE 仍然无法识别 OUnit 的存在。

我的文件只有

没有别的了。编译器抛出一个错误,指出模块未绑定。

我通过 OPAM 安装了 OCaml 和 OUnit,在 Linux Mint 上运行。

0 投票
0 回答
117 浏览

ocaml - OCaml:当我将包添加到命令行时,Ocaide 不再执行新的字节码

我在 Linux Mint 上使用 Ocaide,当我运行一个文件时,print_string "TEST";;它会按预期打印。现在我想写一些代码并使用 OUnit,所以我把它放在open OUnit2;;最上面。它给出了一个模块未绑定的错误,很好,我右键单击文件并打开属性,在 OCaml Module 下的字段中添加命令行标志,我输入package -oUnit -linkpkg -g并且错误消失了。但是,我将打印行更改为print_string "Other test",现在它继续打印原始消息“TEST”。

似乎,使用命令行标志,字节码不再更新。在添加标志之前,它会在文件保存时正确更新字节码。

我尝试将标志添加到模块而不是包中。我也尝试过在两者中都有标志。没有一个有效。

当我打开运行配置时,包含项目名称、可执行文件和命令行参数的字段似乎都是正确的。

当我打开终端并导航到 Eclipse 工作区中的项目并在那里运行可执行文件时,它仍然会打印旧消息“TEST”。

它没有显示编译或其他错误。

在命令行我可以执行ocamlfind ocamlc -o test -package oUnit -linkpkg -g test.ml,这成功地创建了一个文件,test当我运行它时,它有更新的消息“其他测试”。

0 投票
1 回答
66 浏览

ocaml - Dune 的 OUnit 测试问题

我有一个具有这种结构的项目:

src/dune中,我有以下内容:

test/dune

当我去跑步时dune build,我得到了抱怨:

关于如何解决的任何想法?

0 投票
1 回答
90 浏览

ocaml - ocaml 中 uncurry 的单元测试

到目前为止,我的实施我似乎无法理解问题出在哪里

0 投票
1 回答
17 浏览

ocaml - OUnit2 未绑定模块

我正在编写我的第一个 Ocaml+OUnit2+Dune 项目。但是在我的单元测试中,当我说打开 Mymaps 时,它会显示“未绑定模块 Mymaps”

我的项目结构如下

mymaps_test.ml 的内容

mymaps.mli 的内容

mymaps.ml 的内容

测试/沙丘文件的内容

lib/dune 文件的内容

这是 Github 的链接https://github.com/abhsrivastava/mymaps.git

请让我知道为什么我的测试无法打开模块。为什么它说未绑定模块 Mymaps。(我也尝试过小写的 mymaps 和 MyMaps,但它就是看不到它)。