1. Sling
  2. SLING-1963

Support for server-side JUnit tests, injected in a running Sling instance


    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None


      I've been working on a prototype JUnit extension framework [1] that allows JUnit tests to be injected in a Sling instance, and executed via a test runner servlet.

      Tests are not yet OSGi-aware in the first prototype, but they are dynamically injected as exported classes in a bundle that points to them with a Test-Package header. Apart from that they are 100% normal JUnit3 or 4 tests.

      Next step is to use annotations to inject services in the tests, I'm thinking of something like

      SlingRepository repository

      And maybe

      public void someTest()...

      which would ignore the test if the repository service is not present.

      The prototype consists of two bundles: "extension" which is the test detection and runner services, and "testbundle" which provides a few example tests. To play with it, install the two bundles and access the test servlet at /system/sling/junit/


        Issue Links


          Bertrand Delacretaz created issue -
          Bertrand Delacretaz made changes -
          Field Original Value New Value
          Link This issue blocks SLING-1981 [ SLING-1981 ]
          Bertrand Delacretaz made changes -
          Link This issue relates to SLING-1981 [ SLING-1981 ]
          Bertrand Delacretaz made changes -
          Labels integration-tests junit testing
          Bertrand Delacretaz made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Gavin made changes -
          Workflow no-reopen-closed,doc-test-required [ 12544134 ] Copy of no-reopen-closed,doc-test-required [ 12764709 ]
          Gavin made changes -
          Workflow Copy of no-reopen-closed,doc-test-required [ 12764709 ] no-reopen-closed,doc-test-required [ 12766270 ]
          Gavin made changes -
          Workflow no-reopen-closed,doc-test-required [ 12766270 ] re-open possible,doc-test-required [ 12788341 ]
          Gavin made changes -
          Workflow re-open possible,doc-test-required [ 12788341 ] no-reopen-closed,doc-test-required [ 12791085 ]


            • Assignee:
              Bertrand Delacretaz
              Bertrand Delacretaz
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: