You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何激活无main函数的D语言库中的内置单元测试?

在无main函数的D语言库中激活单元测试

其实你完全不用依赖main函数来激活D语言库中的单元测试——D的编译器本身就提供了直接运行unittest块的原生支持,根本不需要写额外的main函数作为变通方案。具体操作很简单:

  • 编译时指定-unittest选项
    不管你用的是DMD、LDC还是GDC,只要在编译命令里加上-unittest参数,编译器就会自动为你生成一个包含测试执行逻辑的入口,不需要你手动编写main函数。

    拿你给出的示例代码来说:

    int foo(int i) { return i + 1; }
    unittest {
        assert(foo(1) == 1); // 这个断言会失败,因为foo(1)实际返回2
    }
    

    用DMD编译的命令就是:

    dmd -unittest yourlibrary.d
    

    编译完成后,直接运行生成的可执行文件(比如Linux/macOS下的yourlibrary,Windows下的yourlibrary.exe),编译器会自动执行所有unittest块里的代码,你会看到断言失败的错误输出,完全不需要额外的main函数。

  • 针对库项目的小提示
    如果你的代码是要编译成静态库或动态库的项目,正常编译库的时候不用加-unittest选项,这样测试代码不会被打包到最终的库文件里。当你需要跑测试时,单独用-unittest编译生成一个测试可执行文件即可,两者互不影响。

内容的提问来源于stack exchange,提问作者Aaron Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:13:40