内置的单元测试功能(unittest {...}
代码块)似乎只在运行时被激活。
如何在没有 main
函数的库中激活单元测试?
这与 this SO question 有点相关,尽管那里接受的答案是通过 main
函数处理解决方法。
例如,我希望单元测试在仅包含以下代码的文件上失败:
int foo(int i) { return i + 1; }
unittest {
assert(foo(1) == 1); // should fail
}
您会注意到我没有在顶部声明
module
。我不确定这对这个特定问题是否重要,但实际上我会在顶部有一个 module
语句。 最佳答案
您可以使用 DMD 的 -main
开关或 rdmd 的 --main
开关,将空的 main
函数添加到已编译的源文件集中。这允许为您的库创建单元测试二进制文件。
如果你使用 Dub,dub test
会自动做类似上面的事情。
关于unit-testing - 单元测试 D 库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49864803/