1# Gerbera Test 2 3This file outlines how the Gerbera system uses the **GoogleTest** 4framework to provide unit testing for the C++ code-base. 5 6## Required Software 7 8- CMake ^3.9 9- GoogleTest 10 11## Enable Testing 12 13The CMake build enables testing using the `WITH_TESTS` flag 14 15```text 16$ cmake ../gerbera -DWITH_TESTS=1 17``` 18 19## Running All Tests 20 21Build the project and run all the tests 22 23``` 24$ make && make test 25``` 26 27The tests output looks similar to below: 28 29``` 30Running tests... 31Test project /development/gerbera/build 32 Start 1: testdictionary 331/2 Test #1: testdictionary ................... Passed 0.02 sec 34 Start 2: testruntime 352/2 Test #2: testruntime ...................... Passed 0.02 sec 36 37100% tests passed, 0 tests failed out of 2 38 39Total Test time (real) = 0.05 sec 40 41``` 42 43## Running Specific Test 44 45You can run specific tests by using `ctest`. Below is an example of running the 46**testdictionary** test only. 47 48 49``` 50$ ctest -R testdictionary 51Test project /development/gerbera/build 52 Start 1: testdictionary 531/1 Test #1: testdictionary ................... Passed 0.02 sec 54 55100% tests passed, 0 tests failed out of 1 56 57Total Test time (real) = 0.03 sec 58``` 59 60## Creating a New Test 61 62Adding a new test to Gerbera is easy. The process amounts to a few steps: 63 641. Create a new feature test folder similar to `/test/test_myfeature` 652. Create `CMakeLists.txt` within your new folder. 663. Create a `main.cc` Google Test file 674. Add your files to your `CMakeLists.txt` within your `/test/test_myfeature` folder 684. Add sub-directory `test_myfeature` to the parent `/test/CMakeLists.txt` file 69