opengeospatial / teamengine-docker

7 stars 22 forks source link

Run test suite at container startup #11

Open nuest opened 6 years ago

nuest commented 6 years ago

Is it possible to run a test suite at the startup of a Docker container?

I've found this example but wonder if there is a way this could be supported out of the box for all services.

Something like

docker run --rm -it -e TEST_ENDPOINT=http://localhost:8080/wms opengis/teamengine-ets-wms-13 run-all.sh

I don't see how Running a test-suite non-interactively could be done in the container. Ideally the exit status would communicate the test result.

[Disclaimer: I'm a teamengine noob, and also not able to contribute extensively myself. Just would play around with this if it's available easily.]

What would this be useful for? One could pull the image and run the above command in an automated test environment after building the web service.

dstenger commented 6 years ago

First, it should be stated that TEAM Engine supports 3 different types of APIs:

The teamengine-docker project concentrates on Web Browser Interface and REST API. Thus, Command shell interface has never been tested with this project. As far as I understand, your example refers to the Command shell interface.

For your purpose the REST API should be the best fitting interface. Please review the documentation on https://opengeospatial.github.io/teamengine/users.html.

If you have any further questions regarding the different APIs or the teamengine-docker project, please feel free to ask.

dstenger commented 6 years ago

Of course, when the Web Browser Interface and REST API shall be used, the container serves a running application server. In your example, just a command is executed via Docker (no running server instance afterwards). If this is an important requirement for you, we should create an issue to enable the Command shell interface for this project.

aaime commented 5 years ago

@dstenger would the REST interface work for all tests suites, including the older ones?

dstenger commented 5 years ago

In general, the REST interface also works with older test suites. However, it has to be enabled for each test suite individually. Thus, it depends on the test suite if it works.

Please see REST interface of Beta environment giving a good overview of test suites with enabled REST interface: http://cite.opengeospatial.org/te2/rest/suites/

aaime commented 5 years ago

Ok, so I see it's missing for WFS 1.1, for all WCS versions, and CSW 2.0.2 (among the ones that I'd care about, at least). Is it hard to add?

dstenger commented 5 years ago

Enabling REST API is already covered by issues in target issue trackers:

In general, it is not hard to implement. Please see referenced issues for instructions. Of course, any help is welcome.

dstenger commented 2 years ago

Telcon @ghobona and @dstenger

Since the Docker Container exposes REST API endpoints it is already possible to create scripts which use the REST API. We invite other developers to help us creating this enhancement.