2008-11-03 105 views
7

我有一个大型项目,我尝试使用TDD。 我使用Tut作为我的测试框架,它有缺陷,但足以满足我的需求。在Visual Studio(TDD)中构建和运行C++单元测试

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

不幸的是,这意味着我的Visual Studio Sln正在填充测试,这是不可扩展的,也隐藏了实际的重要项目。

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

+0

我以后升级了,解决方案文件夹的添加解决了这个问题。我可以把我的测试放在一个文件夹中。 – 2009-11-09 09:52:01

回答

4

“是否可以隐藏构建项目并仍然构建它们?”

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

如果你需要一些LIB-S从主要项目链接你的单元测试,你可以使用

#pragma comment(lib, "libname") 

详见this MSDN page

+0

我喜欢创建单独sln的想法,希望我可以让它们共享obj文件。 – 2008-11-03 23:13:54

0

您可以尝试在解决方案资源管理器的解决方案中将测试分组到文件夹中(它们是否称为过滤器?)。这会将测试与其他项目分开。但是,否则,您是否可以避免使用链接时间测试接缝(是的,我知道,它可能来不及提供此建议),并且使用多态性来提供运行时间变化并具有较少的测试项目?

0

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

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

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

相关问题