使用 Dune 构建系统,可以轻松输出可执行文件的字节码文件以与
ocamldebug
一起使用。然而,尚不清楚如何对内联单元测试执行相同的操作; Dune 文档说明了如何在字节码中运行测试,但不清楚如何在ocamldebug
中实际运行测试。在 _build/default/src/.libname.inline-tests/inline_test_runner_libname.bc
中生成了一个看起来应该是字节码的文件,但是 ocamldebug
无法运行它,声称它不是字节码文件,并且 file
命令证实了这一点:
文件_build/default/src/.tlapm_lib.inline-tests/inline_test_runner_tlapm_lib.bc _build/default/src/.tlapm_lib.inline-tests/inline_test_runner_tlapm_lib.bc:ELF 64 位 LSB 饼可执行文件,x86-64,版本 1 (SYSV),动态链接,解释器 /lib64/ld-linux-x86-64。 so.2,BuildID[sha1]=546a34751609fc98b4202c4ede320378c83a8138,适用于GNU/Linux 4.4.0,带debug_info,未剥离
既然在调试器中运行内联单元测试非常有价值,那么如何才能做到这一点呢?
答案是这是不可能的,这没什么大不了的,因为 OCaml 开发人员实际上并不使用调试器,而是选择像 utop 这样的 REPL。