Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 单元测试D库_Unit Testing_Tdd_D - Fatal编程技术网

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
部分