Unit testing 单元测试D库
内置的单元测试功能(Unit testing 单元测试D库,unit-testing,tdd,d,Unit Testing,Tdd,D,内置的单元测试功能(unittest{…}code块)似乎只在运行时激活 如何在没有main函数的库中激活单元测试 这在某种程度上与此相关,尽管公认的答案是通过main功能解决问题 例如,我希望在一个只包含以下代码的文件上进行单元测试失败: int foo(int i) { return i + 1; } unittest { assert(foo(1) == 1); // should fail } 您会注意到,我没有在顶部声明模块。我不确定这对于这个特定的问题是否重要,但实际上我会在
unittest{…}
code块)似乎只在运行时激活
如何在没有main
函数的库中激活单元测试
这在某种程度上与此相关,尽管公认的答案是通过main
功能解决问题
例如,我希望在一个只包含以下代码的文件上进行单元测试失败:
int foo(int i) { return i + 1; }
unittest {
assert(foo(1) == 1); // should fail
}
您会注意到,我没有在顶部声明模块
。我不确定这对于这个特定的问题是否重要,但实际上我会在顶部有一个模块语句
如何在没有主函数的库中激活单元测试
您可以使用DMD的-main
开关或rdmd的-main
开关,将空的main
函数添加到已编译的源文件集中。这允许为库创建单元测试二进制文件
如果您使用Dub,Dub test
将自动执行上述操作。?请尝试dmd-main-unittest yourfile.d
@AdamD.Ruppe。不幸的是,如果运行该测试,则不会显示单元测试失败。如果我需要给出一个代码示例,请告诉我。@AdamD.Ruppe question经过编辑以提供简单的代码示例,这不适用于仅编译程序的建议,您仍然需要在编辑后运行它,question经过编辑以提供简单的代码示例,这不适用于此。不要忘记使用-unittest
以及-main
编译dmd-main-unittest-runtest.d
正确地为我显示了unittest失败。谢谢,是的,我忘记了-run
部分