3403d98c72
* Rename nw folder to novelwriter * Rename nw to novelwriter in auxiliary files * Rename nw to novelwriter in main app source * Rename nw to novelwriter in tests * Make setup script for pdf docs less spammy
62 lines
1.5 KiB
Markdown
62 lines
1.5 KiB
Markdown
# novelWriter Tests
|
|
|
|
The test suite uses PyTest for testing.
|
|
|
|
## Dependencies
|
|
|
|
* `python3-pytest` for the basic framework (required)
|
|
* `python3-pytestqt` for Qt support (required)
|
|
* `python3-pytest-cov` for code coverage reports (optional)
|
|
* `python3-pytest-xvfb` for headless tests (optional)
|
|
|
|
## HowTo
|
|
|
|
### Basic Usage
|
|
|
|
To run all tests, type:
|
|
```bash
|
|
pytest-3 -v
|
|
```
|
|
|
|
The `-v` switch enables verbose mode, with one test per line.
|
|
For a more compact view, omit this switch.
|
|
|
|
### Headless
|
|
|
|
To run tests in headless mode, either use the Qt `offscreen` mode:
|
|
```bash
|
|
export QT_QPA_PLATFORM=offscreen
|
|
```
|
|
|
|
or run with `xvfb`:
|
|
```bash
|
|
xvfb-run pytest-3 -v
|
|
```
|
|
|
|
### Test Coverage
|
|
|
|
To add test coverage, run the following:
|
|
```bash
|
|
pytest-3 -v --cov=novelwriter --cov-report=html
|
|
```
|
|
|
|
The `--cov-report` switch generates an html report, omit it to print a coverage summary to the
|
|
terminal. The html coverage report will be available in the `htmlcov` folder.
|
|
|
|
### Test Markers (Categories)
|
|
|
|
To run with specific test markers, add the `-m` switch:
|
|
```bash
|
|
pytest-3 -v -m core
|
|
```
|
|
|
|
Available markers are:
|
|
|
|
* `base` for unit tests covering the non-gui classes of the `novelwriter` folder..
|
|
* `core` for unit tests covering the classes in the `novelwriter/core` folder.
|
|
* `gui` for unit and integrations tests covering the classes in the `novelwriter/gui` folder.
|
|
|
|
|
|
You can filter tests further with the `-k` switch, all the way down to a single test. You can for
|
|
instance run only dialog tests with `-k testDlg` or tools with `-k testTool`.
|