[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