jsor / doctrine-postgis

Spatial and Geographic Data with PostGIS and Doctrine.
MIT License
209 stars 50 forks source link

Support for PostGIS 3.2, 3.3 & 3.4 testing #67

Open GwendolenLynch opened 8 months ago

GwendolenLynch commented 8 months ago

This PR aims to introduce testing for newer PostGIS versions.

One of the problems to solve was consistent, future-proof(-ish), testing across 5 different versions of PostGIS, as a test expectation might be valid for 3.0, 3.1 & 3.2, but changes in 3.3 and/or 3.4 due to the way PHPUnit handles --group and --exclude-group, e.g. if a test is in 3.1 & 3.2, but you --exclude-group on 3.1, then the 3.2 group membership is ignored.

To work around this I added a small function to the generator that automatically add group membership to a catch-all versioned group, and for the highest-value group, any higher supported group values.

Tests (e.g. PostgreSQL 13 & PostGIS 3.2) now can be run like so :

./docker/run-13-32.sh vendor/bin/phpunit --exclude-group=versioned
./docker/run-13-32.sh vendor/bin/phpunit --group=postgis-3.2

I haven't touched the CI yet, as you'll probably have feedback with respect to PHP & Postgres versions used in the matrix.

Happy to work with you to get things to your liking.

GwendolenLynch commented 8 months ago

I've made a first attempt at updating the CI matrix, so there should be more to see on the next run.