【问题标题】:Integrating C++ Catch unit test framework with CMake将 C++ Catch 单元测试框架与 CMake 集成
【发布时间】:2017-02-28 22:46:47
【问题描述】:

我正在使用 Visual Studio 2015 开发我的应用程序。

我的解决方案中有 6 个项目,其中 5 个是库,一个是可执行文件。

可执行项目包含我的测试文件,我正在使用Catch framework 进行测试。所以我将在可执行项目中有 5 个cppfiles。如何使用CMake 逐个运行每个测试?

CMakeadd_test 函数将可执行文件名称作为命令并一次运行所有测试。我需要分别运行每个测试。

【问题讨论】:

    标签: c++ unit-testing visual-studio-2015 cmake catch-unit-test


    【解决方案1】:

    您可以使用正确的命令行参数添加多个add_test 调用。

    在 catch 中,您可以通过将名称添加到二进制文件来运行特定测试。

    tester <testName>
    

    因此您可以将它们添加为add_test 调用的参数:

    add_test(NAME mytest1 COMMAND tester test1 <...> )
    add_test(NAME mytest2 COMMAND tester test2 <...> )
    ...
    

    然后您可以使用

    执行一项特定的测试
    ctest -R mytest1 
    

    这只会减少mytest1。 -R 还需要一个正则表达式,以防您要运行多个测试。

    【讨论】:

    • 这个 是测试用例的名称还是特定的 cpp 文件?
    • @Jackzz 是的。有关详细信息,请参见此处:github.com/philsquared/Catch/blob/master/docs/command-line.md
    • 它不仅是一个名字,而且是一个“测试规范”。您可以在 catch 文档中看到有关此的更多详细信息。
    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    相关资源
    最近更新 更多