簡體   English   中英

OUnit2 未綁定模塊

[英]OUnit2 Unbound Module

我正在編寫我的第一個 Ocaml+OUnit2+Dune 項目。 但是在我的單元測試中,當我說打開 Mymaps 時,它說“未綁定模塊 Mymaps”

我的項目結構如下

mymaps
  |
  |-> lib
       |-> dune
       |-> mymaps.mli
       |-> mymaps.ml
  |-> test
       |->mymaps_test.ml
       |-> dune
  |->dune-project
  |->mymaps.opam

mymaps_test.ml 的內容

open OUnit2
open Mymaps
let empty_test = "empty has no bindings" >:: (fun _ -> assert_equal [] (empty))
let mymap_tests = [empty_test]
let suite = "maps suite" >::: mymap_tests
let _ = run_test_tt_main suite

mymaps.mli 的內容

type ('k, 'v) t
val empty : ('k, 'v) t
val insert : 'k -> 'v -> ('k, 'v) t -> ('k, 'v) t

mymaps.ml 的內容

type ('k, 'v) t = ('k * 'v) list
let rec insert k v m = match m with 
  | [] -> [(k, v)]
  | (eK, eV) :: tl -> let (nK, nV) = if (eK = k) then (k, v) else (eK, eV) in 
                        (nK, nV) :: insert k v tl
let empty = []

測試/沙丘文件的內容

(test
 (name mymaps_test)
 (libraries ounit2))

lib/dune 文件的內容

(library
 (public_name mymaps)
 (name mymaps))

這是 Github https://github.com/abhsrivastava/mymaps.git的鏈接

請告訴我為什么我的測試無法打開模塊。 為什么說未綁定模塊 Mymaps。 (我也試過小寫的 mymaps 和 MyMaps,但就是看不到)。

您需要在測試項目的libraries節中列出mymaps ,就像您在工作區中處理任何其他項目一樣。 沒有其他跡象表明這是您要測試的庫。

(test
 (name mymaps_test)
 (libraries mymaps ounit2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM