【发布时间】:2017-01-23 17:01:12
【问题描述】:
我想创建两个可执行文件:一个用于应用程序的可执行文件,一个用于测试应用程序。为此,我的CMakeLists.txt 文件中有以下内容:
include_directories(include)
file(GLOB SOURCE "src/*.cc")
file(GLOB TEST "test/*.cc")
add_executable(interest_calc ${SOURCE})
add_executable(interest_calc_test "src/interest_calc.cc" ${TEST})
由于src 和test 目录都包含主要功能,我必须手动将源文件添加到“测试”可执行文件中。是否有另一种非手动方式将所需的源文件添加到“测试”可执行文件?
此外,有没有比创建单独的测试可执行文件更好的方法来测试功能?如果是,是什么/如何?
【问题讨论】:
-
Is there another, non-manual, way to add required source files to the "test" executable?- 例如您可以将文件main.cc放入不同的文件夹,然后手动将其添加到列表中。Further, is there a better way to test functionality than creating a separate test executable? If so, what/how?- 这个问题广泛为“什么是编写软件的更好方法”。有许多测试策略。只需选择其中一个似乎适合您的目的。 -
请注意,如果您只有一个带有少量源文件的可执行文件,那么将所有源文件通配到您的可执行文件中是可行的……但是随着项目的增长,手动将源文件添加到单元、库,可执行文件和适当的测试是通常被认为是更好的方法。您将面临临时可执行文件、概念验证源、仅供参考的过时源以及大量其他原因,而不仅仅是“将所有内容编译为一个”。
标签: c++ cmake googletest