我正在为OCaml模块编写测试。模块中的一些功能并不是公开可见的,所以它们不包含在签名(.mli文件)中。OCaml - 签名中未包含测试功能
我无法从我的测试中调用这些函数,因为它们在模块外部不可见。所以我很难测试它们。有没有一种好方法来解决这个问题?例如,告诉ocamlc
在编译测试时不要从.mli文件读取签名?
我正在为OCaml模块编写测试。模块中的一些功能并不是公开可见的,所以它们不包含在签名(.mli文件)中。OCaml - 签名中未包含测试功能
我无法从我的测试中调用这些函数,因为它们在模块外部不可见。所以我很难测试它们。有没有一种好方法来解决这个问题?例如,告诉ocamlc
在编译测试时不要从.mli文件读取签名?
一些想法:
我听说人们有时会将他们的.mli文件与他们的.ml文件(在不同的目录中)分开,以便他们可以编译或不编译它们(通过告诉ocamlc查看单独的目录)。我只是尝试了一些实验。我认为它可以工作,但似乎有点容易出错。也许你可以把内部函数的测试放入模块中。导出测试函数可能不会严重违反模块化。 (当然它杂波了模块。)
我试着将.mli文件放入另一个目录。这似乎工作得很好,但最终我认为我会用Ashish的建议使用停止评论'(**/**)',因为这样做有点简单。 +1虽然,好建议。 – declan
现在我正在与你的第一个建议。看起来像最简单的解决方案。 – declan