Hi guys,
I've been banging my head over the following problem lately and wasn't
able to find a solution at all on the interwebs.
So, here's some context. I'm working on multiple RESTful APIs within a
microservices architecture. Some of these applications can form separate
stand alone sub-systems, which can safely be deployed on secured
environments with API security turned off. Or, they can be deployed as
public services, where some actions need proper authorization - i.e.
addition and deletion of content, cluster management, etc.
I want to be able to run 2 sets of, basically acceptance tests, within
the build of each API. I need to start the APIs with different
configurations and execute:
1. all tests against secured API
2. all tests - security tests against unsecured API
The setup is also not trivial, as some of the APIs work with
Solr/Cassandra/GraphDB, but at least it's the same for all tests and can
be reused. The only change between test runs would be a single JVM
parameter which turns security on and off.
Basically, I want to be able to execute the /pre-integration-test ->
integration-tests -> post-integration-test -> verify/ lifecycle phases
multiple times.
At the moment the best option I can see is to create multiple profiles
and run the build multiple times. This has the obvious disadvantages of:
1. unnecessarily repackaging artifacts multiple times
2. can't run all tests with one command, which opens the door for
errors on dev machines
3. Jenkins builds will become heavier and again, increased possibility
of errors when configuring the jobs
Do you have any better ideas?
Thanks,
Stefan
--
Stefan Enev<stefan.e...@ontotext.com>
Technical Architect, Publishing Platform
Ontotext AD