Ocaml 使用dune运行OUnit测试

Ocaml 使用dune运行OUnit测试,ocaml,ounit,ocaml-dune,Ocaml,Ounit,Ocaml Dune,我在运行OUnit测试时遇到困难,主要是因为我对dune和OUnit都是新手沙丘在我运行沙丘运行测试时抱怨沙丘运行测试: 文件“测试/沙丘”,第4行,字符13-14: 错误:找不到库“f”。 提示:try:dune外部库deps--缺少@runtest 以下是项目结构: ├── 沙丘 ├── f、 ml#这是源文件。 └── 测试 ├── 沙丘 └── f_test.ml#这是测试。 这是沙丘: (可执行 (姓名(f)) 这是test/dune: (测试 (名称f_测试) (f)) 一种可

我在运行OUnit测试时遇到困难,主要是因为我对dune和OUnit都是新手<代码>沙丘在我运行沙丘运行测试时抱怨沙丘运行测试:

文件“测试/沙丘”,第4行,字符13-14:
错误:找不到库“f”。
提示:try:dune外部库deps--缺少@runtest
以下是项目结构:

├── 沙丘
├── f、 ml#这是源文件。
└── 测试
├── 沙丘
└── f_test.ml#这是测试。
这是沙丘:

(可执行
(姓名(f))
这是
test/dune

(测试
(名称f_测试)

(f)) 一种可能性是将
f
拆分为一个私有库和一个可执行文件,然后测试拆分的库

编辑:

例如,项目结构可以更新为

├── 沙丘
├── f、 ml#f仅包含I/O粘合代码。
├── 解放党
|    ├── 沙丘
|    └── a、 ml#a实现了需要测试的功能。
└── 测试
├── 沙丘
└── test.ml#这是测试。
沙丘

(可执行文件(名称main)(库Lib))
对于测试,
test/dune

(测试(名称测试)(IT))
最后是
lib/dune

(库(名称库))
使用此设置,可以使用
dune runtest
运行测试