Files
MuditaOS/test/AddingUnitTests.md
Adam Dobrowolski 053f270655 [MOS-282] Librarisation of services and test service
* options work a bit better ,now services and apps are
  selectable by option in cmake
* test service example added
* major documentation for module-services
* documentation for project configs and logs

Co-authored-by: Bartosz Cichocki <sp2fet@gmail.com>
Co-authored-by: Mateusz Piesta <mateusz.piesta@mudita.com>
2022-03-18 08:06:21 +01:00

1.7 KiB

Adding unit tests

Preface

We use either:

to write unit tests.

You can add as many test targets as you wish.

IMPORTANT: All tests are run on the CI on PR's automatically

How to use

Unit tests are always in catalog test or tests and should be included with

NOTE: see the one letter difference!

if (${ENABLE_TESTS})
    add_subdirectory(test)
endif ()

NOTE: To see how test gathering works please see: CMake for UT

To add test target use either of functions:

add_catch2_executable or add_gtest_executable

Both take arguments:

  • NAME test name, it will be prefixed with catch2_ or googletest_, depending on your suite choice
  • SRCS - sources for your unit tests
  • INCLUDE - include directories (-I) for your test
  • LIBS - libraries you depend on
  • DEFS - defines you want to pass to the test
  • DEPS - dependencies you want to pass to the test
  • USE_FS if this unit test uses FS wrapper - please enable only if you really can't create the test without it, adding dependency to FS is not a good practice

Simple example

NOTE: I assume here that:

  • test catalog was created
  • test catalog was included properly If not - please read above!

Examplary executable can be added by creating test/CMakeLists.txt like that:

add_catch2_executable(
        NAME
            service-my_awesome_test
        SRCS
            test-MyAwesomeTest.cpp
        LIBS
)

Which will create target: catch2_service-my_awesome_test

This means you can build it and run with: ninja catch2_service-my_awesome_test && catch2_service-my_awesome_test