在Visual Studio(TDD)中构建和运行C ++单元测试

时间:2008-11-03 11:51:14

标签: c++ visual-studio unit-testing visual-studio-2005 tdd

我有一个大项目,我试图使用TDD。 我使用Tut作为我的测试框架,它有它的缺点但足以满足我的需要。

我需要利用链接时间测试接缝,每个测试必须在其自己的可执行文件中。然后,此可执行文件的项目将作为后期构建步骤启动。

不幸的是,这意味着我的Visual Studio Sln正在填写测试,这些测试不具备可扩展性,并且还隐藏了实际的重要项目。

有谁知道运行这些测试的更好方法? 是否可以从构建中隐藏项目但仍然可以构建它们?

3 个答案:

答案 0 :(得分:4)

“是否有可能从构建中隐藏项目但仍然可以构建它们?”

您可以为测试用例制作单独的解决方案。 然后,您可以设置主项目的后期构建步骤。这个后期构建应该通过单独的解决方案构建测试项目并运行它们。构建测试项目应该通过命令行完成(详见here)。

如果您需要将单元测试与主项目中的某些lib-s链接,可以使用

#pragma comment(lib, "libname")

有关详细信息,请参阅this MSDN page

答案 1 :(得分:0)

您可以尝试在解决方案资源管理器中的解决方案中将测试分组到文件夹中(它们称为过滤器吗?)。这会将测试与其他项目分开。

但是,否则,您是否可以避免使用链接时间测试接缝(是的,我知道,建议这可能为时已晚)并使用多态来提供运行时变化并减少测试项目?

答案 2 :(得分:0)

不知道你是否还在寻找解决方案。但这是一个想法:

您可以将所有测试保存在一个库中,并编写一个自行生成并执行每个测试的应用程序。这样,您最终会得到一个套件的可执行文件(因此也就是一个项目),每个测试都会像一个单独的可执行文件。

这实际上是CUnitWin32中使用的机制。您甚至可以将测试包装在该框架中。