2015-04-27 08:35:04 +02:00
|
|
|
QGIS unit tests
|
|
|
|
===============
|
|
|
|
|
2016-10-24 11:20:22 +02:00
|
|
|
# Build tests
|
2015-04-27 08:35:04 +02:00
|
|
|
|
|
|
|
Make sure that you have enabled building of tests in CMake.
|
|
|
|
`cmake -DENABLE_TESTS=ON ..`
|
|
|
|
|
2016-10-24 11:20:22 +02:00
|
|
|
# Run tests
|
2015-04-27 08:35:04 +02:00
|
|
|
|
|
|
|
You can run all tests using `make check`.
|
|
|
|
|
|
|
|
Individual tests can be run using `ctest`.
|
|
|
|
|
|
|
|
For example if the output of `make check` ends like this:
|
|
|
|
|
|
|
|
```
|
|
|
|
The following tests FAILED:
|
|
|
|
77 - PyQgsLocalServer (Failed)
|
|
|
|
```
|
|
|
|
|
|
|
|
You could re-run the failing test with:
|
|
|
|
|
|
|
|
```
|
|
|
|
ctest -V -R PyQgsLocalServer
|
|
|
|
```
|
|
|
|
|
|
|
|
The parameter `-V` enables verbose mode and `-R` takes a regular expression as
|
|
|
|
parameter and will only run matching tests.
|
|
|
|
|
2016-10-13 20:32:53 +02:00
|
|
|
|
|
|
|
For python tests, you can run a specific test inside a unit file
|
|
|
|
with something like this:
|
|
|
|
|
|
|
|
```
|
|
|
|
QGIS_PREFIX_PATH=output PYTHONPATH=output/python:$PYTHONPATH \
|
|
|
|
python ${srcdir}/tests/src/python/test_qgsvectorfilewriter.py
|
|
|
|
TestQgsVectorLayer.testOverwriteLayer
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2016-10-24 11:20:22 +02:00
|
|
|
# Advanced configuration
|
2015-04-27 08:35:04 +02:00
|
|
|
|
2016-10-24 11:20:22 +02:00
|
|
|
## Postgres
|
2015-04-27 08:35:04 +02:00
|
|
|
|
2015-11-15 22:39:02 +01:00
|
|
|
Make sure that you have enabled building of postgres test in CMake.
|
|
|
|
`cmake -DENABLE_PGTEST=ON ..`
|
|
|
|
|
2015-04-27 08:35:04 +02:00
|
|
|
To test the postgres provider you will need to have a database available to
|
2015-11-15 22:39:02 +01:00
|
|
|
which the postgres provider can connect. The server will need to have postgis
|
|
|
|
support enabled.
|
2016-02-10 17:05:38 +01:00
|
|
|
|
|
|
|
By default the test uses the following connection string:
|
|
|
|
|
|
|
|
dbname=qgis_test
|
2015-11-15 22:39:02 +01:00
|
|
|
|
|
|
|
If this does not match your setup you can set the environment variable
|
2016-02-10 17:05:38 +01:00
|
|
|
`QGIS_PGTEST_DB` to the desired connection string, or you can rely
|
|
|
|
on standard libpq environment variables to tweak host, port user and
|
|
|
|
password (PGHOST, PGPORT, PGUSER, PGPASSWORD).
|
2015-11-15 22:39:02 +01:00
|
|
|
|
2016-02-17 11:08:18 +01:00
|
|
|
Please note that the database needs to be initialized using
|
|
|
|
the sql-scripts:
|
2016-02-10 17:05:38 +01:00
|
|
|
|
|
|
|
tests/testdata/provider/testdata_pg*.sql
|
|
|
|
|
|
|
|
They take care of activating postgis for the test database and
|
|
|
|
create some tables containing test data.
|
2016-02-17 11:08:18 +01:00
|
|
|
|
|
|
|
For convenience, a shell script is provided to create the database
|
|
|
|
and initialize it as needed:
|
|
|
|
|
|
|
|
tests/testdata/provider/testdata_pg.sh
|
2016-10-24 11:20:22 +02:00
|
|
|
|
|
|
|
# Write tests
|
|
|
|
|
2016-10-24 12:29:08 +02:00
|
|
|
Instructions about writing tests for the processing framework
|
2016-10-24 14:37:28 +02:00
|
|
|
can be found in a [separate README file](../python/plugins/processing/tests/README.md):
|
2016-10-24 11:20:22 +02:00
|
|
|
|
2016-10-24 11:43:36 +02:00
|
|
|
${TOP_SRCDIR}/python/plugins/processing/tests/README.md
|
2016-10-24 11:20:22 +02:00
|
|
|
|
2016-10-24 11:43:36 +02:00
|
|
|
Information about labeling tests design and organization:
|
|
|
|
|
|
|
|
${TOP_SRCDIR}/tests/testdata/labeling/README.rst
|
|
|
|
|
|
|
|
WCS testing information can be found in:
|
|
|
|
|
|
|
|
${TOP_SRCDIR}/tests/testdata/raster/README.WCS
|
|
|
|
|
2016-10-24 12:29:08 +02:00
|
|
|
About benchmark tests you can read:
|
2016-10-24 11:43:36 +02:00
|
|
|
|
|
|
|
${TOP_SRCDIR}/tests/bench/README
|