美文网首页
Catch 单元测试工具

Catch 单元测试工具

作者: 小东_16d3 | 来源:发表于2019-04-10 16:51 被阅读0次

    # Catch 单元测试工具

    https://github.com/catchorg/Catch2

    最近学习一个比较简单的单元测试工具,特此总结下:

    ## 使用方式:

    ps: Catch 可以做更复杂的测试方式。当前只学懂皮毛,只介绍简单方式,容易上手。

    1. 只需要#include "catch.hpp"即可

    2. 可以使用TEST_CASE来封装一个测试样例,可自带一到两个参数,第一个描述测试方法,第二个类型。全部以字符串定义。所以在运行时可以指定一个,或者一类样例进行测试,也可以全部进行测试。

    3. 使用REQUIRE() 和CHECK();来检测结果是否与预期一致。出现问题后不会中断测试。

    4. TEST_CASE里可以通过定义SESSION来简化代码逻辑。比如当测试不同参数对功能的影响时,只需定义多个SESSION来区别参数的定义,调用逻辑可以复用。TEST_CASE会以其中每一个SESSION组合一个测试流程。

    5. Catch支持BDD-Style, 即可使用SCENARIO,GIVEN,WHEN,THEN组合进行场景模拟。

    ## 运行方式:

    ```c

    Catch v2.7.0

    usage:

      unittest [<test name|pattern|tags> ... ] options

    where options are:

      -?, -h, --help                            display usage information

      -l, --list-tests                          list all/matching test cases

      -t, --list-tags                          list all/matching tags

      -s, --success                            include successful tests in

                                                output

      -b, --break                              break into debugger on failure

      -e, --nothrow                            skip exception tests

      -i, --invisibles                          show invisibles (tabs, newlines)

      -o, --out <filename>                      output filename

      -r, --reporter <name>                    reporter to use (defaults to

                                                console)

      -n, --name <name>                        suite name

      -a, --abort                              abort at first failure

      -x, --abortx <no. failures>              abort after x failures

      -w, --warn <warning name>                enable warnings

      -d, --durations <yes|no>                  show test durations

      -f, --input-file <filename>              load test names to run from a

                                                file

      -#, --filenames-as-tags                  adds a tag for the filename

      -c, --section <section name>              specify section to run

      -v, --verbosity <quiet|normal|high>      set output verbosity

      --list-test-names-only                    list all/matching test cases

                                                names only

      --list-reporters                          list all reporters

      --order <decl|lex|rand>                  test case order (defaults to

                                                decl)

      --rng-seed <'time'|number>                set a specific seed for random

                                                numbers

      --use-colour <yes|no>                    should output be colourised

      --libidentify                            report name and version according

                                                to libidentify standard

      --wait-for-keypress <start|exit|both>    waits for a keypress before

                                                exiting

      --benchmark-resolution-multiple          multiple of clock resolution to

      <multiplier>                              run benchmarks

    ```

    相关文章

      网友评论

          本文标题:Catch 单元测试工具

          本文链接:https://www.haomeiwen.com/subject/eakuyftx.html