我在运行oUnit测试时遇到困难,主要是因为我对沙丘和OUnit都是新手。 dune
在我运行dune runtest
时抱怨:
File "test/dune", line 4, characters 13-14:
Error: Library "f" not found.
Hint: try: dune external-lib-deps --missing @runtest
这是项目结构:
├── dune
├── f.ml # This is the source file.
└── test
├── dune
└── f_test.ml # This is the test.
这是dune
:
(executable
(name f))
这是test/dune
:
(test
(name f_test)
(libraries oUnit f)) ; <- `f` here causes problems.
我看到出现错误是因为沙丘不了解f.ml
,因此也不知道沙丘文件中的f
。
问题是:如何使沙丘以f.ml
知道我在test/dune
中使用的f
库的方式编译test/f_test.ml
?如何正确运行单元测试?
答案 0 :(得分:3)
一种可能性是将result.RecognitionResult.Where(s => !string.IsNullOrEmpty(s.Text) && s.Text == "lawyer");
拆分为私有库和可执行文件,然后测试拆分后的库。
编辑:
例如,项目结构可以更新为
.FirstOrDefault()
与f
├── dune
├── f.ml # f only contains the I/O glue code.
├── lib
| ├── dune
| └── a.ml # a implements the features that need to be tested.
└── test
├── dune
└── test.ml # This is the test.
对于测试,dune
:
(executable (name main) (libraries Lib))
最后是test/dune
(test (name test) (libraries Lib oUnit))
使用此设置,可以使用lib/dune
运行测试。