---------- Forwarded message --------- From: Stefan Seifert <sseif...@pro-vision.de> Date: Tue, Sep 6, 2016 at 11:25 PM Subject: http-based/teleporter unit tests vs. paxexam integraiton tests (was: RE: flaky integration tests with teleporte rule) To: dev@sling.apache.org <dev@sling.apache.org>
Hi. I'd also like to recommend the newly added https://github.com/apache/sling/tree/trunk/testing/junit/rules for HTTP-based tests. Having HTTP-level tests make sense to me when you have multiple instances, for example or want to have functional tests that cover a whole bunch of functionality. >To be honest, I see only 2, maybe 3 cases where managing tests over HTTP >makes >sense: > >1. you do not want to start your (fat and slow) application under test from >the tests itself >2. you need a different runner than PaxExam (runners and rules are gone in >JUnit 5) >3. reuse of tests like done in o.a.s.karaf-launchpad-oak-tar-integration- >tests > >In any other case I would use Pax Exam and @Inject to ensure required >services >are available before tests are executed. this may be true. before again using a http-based test (also with latest slingstart/provisoining features and teleporter rule they are much nicer than before) i played some minutes with paxexam and was drawn back by two isses (without further thinking or researching on them): 1. within the codebase of org.apache.sling.testing.paxexam a long list of dependencies was hard-coded. this is usually not what i want. using slingstart i reference one sling launchpad version i want to target (e.g. 8) and deploy only few additional bundles. then i can be sure that my application works exactly with this versions of dependencies and felix framework, not only with the latest and greatest versions. if paxexam could be equipped with an "externalized" dependency management based on sling provisioning files and their modularization/overlay/inheritance features this would be great. 2. paxexam integration tests do not run in the IDE (at least not in eclipse/junit runner - the problem seems to be that the pom information is not available for version lookup). this is only nice-to-have. stefan