在OCaml中使用OUnit模块 - 未绑定模块OUnit错误

pro*_*eek 4 ocaml unit-testing opam ounit

我正在尝试将OUnit与OCaml一起使用.

单位代码源(unit.ml)如下:

open OUnit

let empty_list = []
let list_a = [1;2;3]

let test_list_length _ =
  assert_equal 1 (List.length empty_list);
  assert_equal 3 (List.length list_a)
    (* etc, etc *)

let test_list_append _ =
  let list_b = List.append empty_list [1;2;3] in
  assert_equal list_b list_a

let suite = "OUnit Example" >::: ["test_list_length" >:: test_list_length;
                                  "test_list_append" >:: test_list_append]
let _ =
  run_test_tt_main suite
Run Code Online (Sandbox Code Playgroud)

有了ocamlc unit.ml,我收到了一条错误消息Error: Unbound module OUnit.为什么是这样?如何在OCaml中使用OUnit.我安装了OUnit opam.

gas*_*che 7

你应该使用例如:

ocamlfind ocamlc -package oUnit -linkpkg -o unit unit.ml
Run Code Online (Sandbox Code Playgroud)

ocamlfind是一个封装已安装库的查找的实用程序.您还可以避免自己编写编译器调用并使用构建工具.