GitHub Action to run your OGC implementation against OGC CITE
This is a composite action. It spawns a docker container running ogc teamengine.
It then proceeds to run cURL inside the docker image to test your web application.
The teamengine docs
seem to hint that running a test suite via their API can be done by submitting
either GET or POST requests to teamengine. Regardless, it seems that GET
is
the only request type that works OK, at least when testing the OGC API Features
Executable Test Suite.
cat30
: OGC Catalogue 3.0 Conformance Test Suitecdb10
: OGC CDB 1.0 Executable Conformance Test Suitekml22
: KML 2.2 Conformance Test Suitegeopose10
: GeoPose 1.0 Conformance Test Suitegeorss10
: GeoRSS 1.0 Conformance Test Suitegeotiff11
: GeoTIFF 1.1 Conformance Test Suitegml32
: GML 3.2 (ISO 19136:2007) Conformance Test Suitegmljpx20
: GML in JPEG 2000 Conformance Test Suitegpkg10
: GeoPackage 1.0 Conformance Test Suitegpkg12
: GeoPackage 1.2 Conformance Test Suiteogcapi-edr10
: OGC API - Environmental Data Retrieval 1.0 Conformance Test Suiteogcapi-features-1.0
: OGC API-Features 1.0 Conformance Test Suiteogcapi-processes-1.0
: OGC API-Processes 1.0 Conformance Test Suiteomxml20
: Observations and Measurements - XML Implementation (OMXML)sensorml20
: Sensor Model Language (SensorML)sos20
: OGC Sensor Observation Service 2.0.0 - Executable Test Suitesta10
: SensorThings API (STA)swecommon20
: Sensor Web Enablement (SWE) Common Data Model Encoding Standardwcs
: OGC Web Coverage Service 2.0.1 - Executable Test Suitewcs11
: OGC Web Coverage Service 1.1.1 - Executable Test Suitewfs
: Web Feature Service 1.1.0wfs10
: Conformance Test Suite - OGC Web Feature Service 1.0.0wfs20
: WFS 2.0 (ISO 19142:2010) Conformance Test Suitewms11
: Conformance Test Suite - OGC Web Map Service 1.1wms13
: Conformance Test Suite - OGC Web Map Service 1.3.0wmts
: OGC Web Map Tile Service 1.0.0 - Executable Test Suitewps20
: WPS 2.0 Conformance Test Suite
In order to successfully run this action you need to know:
- the identifier of the test suite you want to run
- the parameters that can be passed to the teamengine test runner
- test suite identifier (
etscode
): ogcapi-features-1.0 - implementation under test (
iut
): Mandatory - Implementation under test. This is a URI (http://localhost:5000) noofcollections
: Optional - An integer specifying the number of collections being tested. A value of-1
means that all available collections shall be tested
etscode
: ogcapi-processes-1.0iut
: Mandatory - Implementation under test. This is a URI (http://localhost:5001)noofcollections
: Optional - An integer specifying the number of collections being tested. A value of-1
means that all available collections shall be tested
etscode
: ogcapi-edr10iut
: Mandatory - Implementation under test. This is a URI (http://localhost:5001)ics
: A comma-separated list of string values. Indicates ???
With a bit of extra effort, this action's code can be run locally:
-
Start your service to be tested. Let's assume it is running on
http://localhost:5000
-
Run the teamengine docker image:
docker run --rm --name teamengine --network=host ogccite/teamengine-production:1.0-SNAPSHOT
-
Install the action code with poetry and then run its main script. Here we are executing the test suite for ogcapi-features:
poetry install poetry run ogc-cite-action \ --debug \ execute-test-suite \ http://localhost:8080/teamengine \ ogcapi-features-1.0 \ --test-suite-input iut http://localhost:5000 \ --test-suite-input noofcollections -1