1# Twister Testing
2
3Running the tests require the environment variable ZEPHYR_BASE to be set.
4
5Twister Testsuite are located in $ZEPHYR_BASE/scripts/tests directory with all the data files in $ZEPHYR_BASE/scripts/test_data directory.
6
7## Dependencies
8
9Install all the dependencies using
10
11```
12pip install -r $ZEPHYR_BASE/scripts/requirements-build-test.txt
13```
14
15## Executing testsuite
16
17The testcases can be executed from the root directory using
18
19```
20pytest $ZEPHYR_BASE/scripts/tests/twister
21```
22
23## Twister Coverage
24
25The coverage for all the tests can be run using the command below. This will collect all the tests available.
26
27```bash
28coverage run -m pytest $ZEPHYR_BASE/scripts/tests/twister/
29```
30
31Then we can generate the coverage report for just twister script using
32
33```bash
34coverage report -m $ZEPHYR_BASE/scripts/pylib/twister/
35```
36
37To generate the coverage report for twister script use below command
38
39```bash
40coverage report -m $ZEPHYR_BASE/scripts/twister
41```
42
43The html coverage report for twister can be generated using
44
45```bash
46coverage html twister
47```
48
49If needed,the full coverage html report can be generated in every run of "pytest" in the tests directory using configuration file (setup.cfg).
50
51## Organization of tests
52
53- conftest.py: Contains common fixtures for use in testing the twister tool.
54- test_twister.py : Contains basic testcases for environment variables, verifying testcase & platform schema's.
55- test_testsuite_class.py : Contains testcases for Testsuite class (except reporting functionality) in twisterlib.py.
56- test_testinstance.py : Contains testcases for Testinstance and Testcase class.
57- test_reporting_testsuite.py : Contains testcases for reporting functionality of Testsuite class of twister.
58