[QtCratot]_0_0_googletest单元测试

Posted 小砖头1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[QtCratot]_0_0_googletest单元测试相关的知识,希望对你有一定的参考价值。

[QtCratot]_0_0_googletest单元测试

创建时间:20210822 16:36:00

获得googletest工程

  • 下载googletest工程到本地
    • git clone https://github.com/google/googletest.git

创建QT测试工程

  • 添加BaseUtil的测试工程

  • 选择googletest框架和cmake/qmake管理工程, 推荐qmake

  • 执行验证

编写测试用例,及运行后的测试结果

项目整理:GoogleTest可以只留下使用的文件

  • 删除没有用的示例和文档来减少文件管理

    googletest
    ├── googlemock
    │   ├── include
    │   └── src
    └── googletest
        ├── include
        └── src
    
    googletest
    ├── googlemock
    │   ├── include
    │   │   └── gmock
    │   │       ├── gmock-actions.h
    │   │       ├── gmock-cardinalities.h
    │   │       ├── gmock-function-mocker.h
    │   │       ├── gmock.h
    │   │       ├── gmock-matchers.h
    │   │       ├── gmock-more-actions.h
    │   │       ├── gmock-more-matchers.h
    │   │       ├── gmock-nice-strict.h
    │   │       ├── gmock-spec-builders.h
    │   │       └── internal
    │   │           ├── custom
    │   │           │   ├── gmock-generated-actions.h
    │   │           │   ├── gmock-matchers.h
    │   │           │   ├── gmock-port.h
    │   │           │   └── README.md
    │   │           ├── gmock-internal-utils.h
    │   │           ├── gmock-port.h
    │   │           └── gmock-pp.h
    │   └── src
    │       ├── gmock-all.cc
    │       ├── gmock-cardinalities.cc
    │       ├── gmock.cc
    │       ├── gmock-internal-utils.cc
    │       ├── gmock_main.cc
    │       ├── gmock-matchers.cc
    │       └── gmock-spec-builders.cc
    └── googletest
        ├── include
        │   └── gtest
        │       ├── gtest-death-test.h
        │       ├── gtest.h
        │       ├── gtest-matchers.h
        │       ├── gtest-message.h
        │       ├── gtest-param-test.h
        │       ├── gtest_pred_impl.h
        │       ├── gtest-printers.h
        │       ├── gtest_prod.h
        │       ├── gtest-spi.h
        │       ├── gtest-test-part.h
        │       ├── gtest-typed-test.h
        │       └── internal
        │           ├── custom
        │           │   ├── gtest.h
        │           │   ├── gtest-port.h
        │           │   ├── gtest-printers.h
        │           │   └── README.md
        │           ├── gtest-death-test-internal.h
        │           ├── gtest-filepath.h
        │           ├── gtest-internal.h
        │           ├── gtest-param-util.h
        │           ├── gtest-port-arch.h
        │           ├── gtest-port.h
        │           ├── gtest-string.h
        │           └── gtest-type-util.h
        └── src
            ├── gtest-all.cc
            ├── gtest.cc
            ├── gtest-death-test.cc
            ├── gtest-filepath.cc
            ├── gtest-internal-inl.h
            ├── gtest_main.cc
            ├── gtest-matchers.cc
            ├── gtest-port.cc
            ├── gtest-printers.cc
            ├── gtest-test-part.cc
            └── gtest-typed-test.cc
    
    12 directories, 57 files
    
  • 项目整理:将GoogleTest的配置文件,直接写到pro文件中

    # GoogleTest配置
    isEmpty(GOOGLETEST_DIR) 
        warning("Using googletest src dir specified at Qt Creator wizard")
        message("set GOOGLETEST_DIR as environment variable or qmake variable to get rid of this message")
        GOOGLETEST_DIR = ../googletest
    
    
    !isEmpty(GOOGLETEST_DIR): 
        GTEST_SRCDIR = $$GOOGLETEST_DIR/googletest
        GMOCK_SRCDIR = $$GOOGLETEST_DIR/googlemock
    
    
    requires(exists($$GTEST_SRCDIR):exists($$GMOCK_SRCDIR))
    
    !exists($$GOOGLETEST_DIR):message("No googletest src dir found - set GOOGLETEST_DIR to enable.")
    
    DEFINES += \\
        GTEST_LANG_CXX11
    
    INCLUDEPATH *= \\
        $$GTEST_SRCDIR \\
        $$GTEST_SRCDIR/include \\
        $$GMOCK_SRCDIR \\
        $$GMOCK_SRCDIR/include
    
    SOURCES += \\
        $$GTEST_SRCDIR/src/gtest-all.cc \\
        $$GMOCK_SRCDIR/src/gmock-all.cc
    

以上是关于[QtCratot]_0_0_googletest单元测试的主要内容,如果未能解决你的问题,请参考以下文章

googletest--测试控制

_stricmp with mingw 和 c++0x 不存在?

GoogleTest(Fatal assertion)-5

__formart__

R中“错误:包'_____'是在3.0.0之前构建的:请重新安装它”的原因

吉他入门