单元测试D库
Unit testing D library
内置单元测试功能(unittest {...}
代码块)似乎仅在 运行 时激活。
如何在没有 main
函数的库中激活单元测试?
这与 有点相关,尽管那里接受的答案是通过 main
函数处理变通方法。
例如,我希望单元测试在仅包含此代码的文件上失败:
int foo(int i) { return i + 1; }
unittest {
assert(foo(1) == 1); // should fail
}
您会注意到我没有在顶部声明 module
。我不确定这对这个特定问题是否重要,但实际上我会在顶部有一个 module
语句。
How can I activate unit tests in a library with no main function?
您可以使用 DMD 的 -main
开关或 rdmd 的 --main
开关,将一个空的 main
函数添加到已编译的源文件集。这允许为您的库创建单元测试二进制文件。
如果您使用 Dub,dub test
会自动执行上述操作。
内置单元测试功能(unittest {...}
代码块)似乎仅在 运行 时激活。
如何在没有 main
函数的库中激活单元测试?
这与 main
函数处理变通方法。
例如,我希望单元测试在仅包含此代码的文件上失败:
int foo(int i) { return i + 1; }
unittest {
assert(foo(1) == 1); // should fail
}
您会注意到我没有在顶部声明 module
。我不确定这对这个特定问题是否重要,但实际上我会在顶部有一个 module
语句。
How can I activate unit tests in a library with no main function?
您可以使用 DMD 的 -main
开关或 rdmd 的 --main
开关,将一个空的 main
函数添加到已编译的源文件集。这允许为您的库创建单元测试二进制文件。
如果您使用 Dub,dub test
会自动执行上述操作。