将测试代码构建为库还是可执行文件? 在单元测试和测试驱动开发中,为什么将测试代码作为一个库而不是作为C++程序的可执行文件更好呢?我听过这两种说法。

将测试代码构建为库还是可执行文件? 在单元测试和测试驱动开发中,为什么将测试代码作为一个库而不是作为C++程序的可执行文件更好呢?我听过这两种说法。,c++,unit-testing,tdd,C++,Unit Testing,Tdd,您可以为测试代码构建单独的可执行文件,并将其作为主应用程序的构建后事件运行。这样,如果测试失败,构建就会失败。大多数C++ IDE(例如VisualStudio,Eclipse,QtCreator)支持这一点。< P>库VS可执行文件的参数取决于您希望开发人员使用测试。 如果希望将测试集成到构建过程中,可能需要一个命令行可执行文件。如果您想从某种独立的GUI应用程序运行测试,您可能需要一个基于窗口的可执行文件。如果希望测试由度量收集服务器运行,则可能需要将它们托管在服务中 如果需要这些方法中的多

您可以为测试代码构建单独的可执行文件,并将其作为主应用程序的构建后事件运行。这样,如果测试失败,构建就会失败。大多数C++ IDE(例如VisualStudio,Eclipse,QtCreator)支持这一点。

< P>库VS可执行文件的参数取决于您希望开发人员使用测试。

如果希望将测试集成到构建过程中,可能需要一个命令行可执行文件。如果您想从某种独立的GUI应用程序运行测试,您可能需要一个基于窗口的可执行文件。如果希望测试由度量收集服务器运行,则可能需要将它们托管在服务中

如果需要这些方法中的多个,可以选择将测试编译到库中,然后将它们链接到每个可执行框架中。但是如果您只需要命令行执行,那么就不需要GUI或服务选项,也不需要构建单独的静态库

这两种方法都不是“更好”。根据团队的具体情况和团队标准选择所需的方法。现在可能也没那么重要了。如果您仅从一个可执行的测试线束开始,那么您始终可以在以后将测试拆分为一个静态库

现在开始编写和运行自动化测试远比暂停和质疑测试实现细节重要得多