[QGIS-Developer] Python plugin Processing tests using QGIS Docker
Benjamin Jakimow
benjamin.jakimow at geo.hu-berlin.de
Sun Nov 16 11:23:42 PST 2025
Hi Sergi,
as Germán wrote, you need to ensure that the PYTHONPATH contains the
local QGIS plugin directory:
PYTHONPATH=/usr/share/qgis/python/plugins
In addition the test suite may need to initialized the processing
framework with:
from processing.core.Processing import Processing
Processing.initialize()
Greetings,
Benjamin
On 11/11/2025 15:18, Germán Carrillo via QGIS-Developer wrote:
> Hi Sergi,
>
> I think I faced the same issue earlier this year.
>
> Have a look at our test.yaml file [1], we needed to pass PYTHONPATH to
> the docker run command.
>
> Hope that helps.
>
> Regards,
>
> Germán
> -----------
> [1] https://github.com/opengisch/pzp/blob/
> f951fa3fa4ae3662d01d733ea6a32a4d41acedc6/.github/workflows/test.yml#L33
> <https://github.com/opengisch/pzp/blob/
> f951fa3fa4ae3662d01d733ea6a32a4d41acedc6/.github/workflows/test.yml#L33>
>
>
> El mar, 11 nov 2025 a las 5:06, Joona Laine via QGIS-Developer (<qgis-
> developer at lists.osgeo.org <mailto:qgis-developer at lists.osgeo.org>>)
> escribió:
>
> Hi,
>
> Are you using pytest-qgis already in your tests? If you are, just
> use the fixture qgis_processing in your tests and testing processing
> algorithms should work just fine. Check here for more details on how
> to easily test algorithms: https://github.com/GispoCoding/pytest-
> qgis/issues/27 <https://github.com/GispoCoding/pytest-qgis/issues/27>
>
> Cheers,
> Joona
>
> ti 11.11.2025 klo 11.09 Sergi Maspons - BGEO via QGIS-Developer
> (qgis-developer at lists.osgeo.org <mailto:qgis-
> developer at lists.osgeo.org>) kirjoitti:
>
> __
>
> Hi all,
>
> I'm trying to build some CI tests on GitHub (with pytest) using
> the official qgis/qgis Docker image. Everything works fine
> except for the parts of my plugin that use Processing
> algorithms. I'd like to run full workflow tests, but the
> processing plugin doesn't seem to be available in the container.
>
> When I try to load it with qgis.utils.loadPlugin('processing') I
> get this error:
>
> Python error(2): Traceback (most recent call last):
> File "/usr/share/qgis/python/qgis/utils.py", line 447, in
> loadPlugin
> __import__(packageName)
> File "/usr/share/qgis/python/qgis/utils.py", line 1100, in
> _import
> mod = _builtin_import(name, globals, locals, fromlist, level)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ModuleNotFoundError: No module named 'processing'
>
> Couldn't load plugin 'processing'(1): Couldn't load plugin
> 'processing'
>
> I can't find much documentation on how to build CI tests for a
> QGIS plugin, so I've been trying to make it work, but I don't
> know if I'm doing it rightly...
>
> I've tried installing extra packages (qgis-plugin-grass, grass,
> saga) in the Dockerfile, but it didn't help.
>
> Here's my *Dockerfile*:
>
> ARG QGIS_TEST_VERSION=latest FROM qgis/qgis:
> ${QGIS_TEST_VERSION} RUN apt-get update \ && apt-get install
> -y python3-pip qgis-plugin-grass grass saga \ && rm -rf /
> var/lib/apt/lists/* COPY ./test/requirements.txt /tmp/ RUN pip3
> install --upgrade pip || true RUN pip3 install -r /tmp/
> requirements.txt || pip3 install -r /tmp/requirements.txt --
> break-system-packages ENV LANG=C.UTF-8 WORKDIR /
>
> This is my *run-docker-tests.sh*:
>
> #!/usr/bin/env bash set -e pushd /usr/src/ibergis_qgis_plugin
> xvfb-run pytest popd
>
> And the relevant part of *GitHub Actions (test.yml)*:
>
> # Run unit tests tests-qgis: runs-on: ubuntu-24.04
> strategy: fail-fast: false matrix:
> qgis_version: [latest, ltr, stable] env:
> QGIS_TEST_VERSION: ${{ matrix.qgis_version }} steps: -
> name: Checkout uses: actions/checkout at v4 with:
> submodules: recursive - name: Test run: |
> chmod +x .docker/run-docker-tests.sh docker
> compose -f .docker/docker-compose.yml run qgis /usr/src/
> ibergis_qgis_plugin/.docker/run-docker-tests.sh
>
> I haven't found much documentation on running QGIS plugin tests
> in CI environments, so I might be missing something obvious.
> If anyone has experience running tests that use Processing
> algorithms inside Docker, I'd really appreciate some guidance.
>
> Thanks in advance!
>
> --
> *Sergi Maspons "Maspi"*
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org <mailto:QGIS-
> Developer at lists.osgeo.org>
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-
> developer <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-
> developer <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org <mailto:QGIS-Developer at lists.osgeo.org>
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>
>
>
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
--
Dr. Benjamin Jakimow
Earth Observation Lab | Geography Department | Humboldt-Universität zu
Berlin
e-mail: benjamin.jakimow at geo.hu-berlin.de
phone: +49 (0) 30 2093 45846
mobile: +49 (0) 157 5656 8477
fax: +49 (0) 30 2093 6848
mail: Unter den Linden 6 | 10099 Berlin | Germany
matrix: @jakimowb:hu-berlin.de
web: https://hu-berlin.de/eo-lab
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4347 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20251116/8af12294/attachment-0001.bin>
More information about the QGIS-Developer
mailing list