README.md
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