Actually the real error I have is: java.lang.Exception: No tests found matching Method null(com.adobe.cq.platform.security.it.serverside.TestClassRuleSST) from org.junit.internal.requests.ClassRequest@42fcda97
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:35) at org.junit.runner.JUnitCore.run(JUnitCore.java:138) at org.apache.sling.junit.impl.TestsManagerImpl.executeTests(TestsManagerImpl.java:199) at org.apache.sling.junit.impl.servlet.ServletProcessor.doPost(ServletProcessor.java:158) at org.apache.sling.junit.impl.servlet.JUnitServlet.doPost(JUnitServlet.java:103) at javax.servlet.http.HttpServlet.service(HttpServlet.java:644) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) The previous error was due to missing Customizer class. -Thierry 2015-12-03 14:12 GMT+01:00 Thierry Yge <[email protected]>: > It doesn't work, I think you mean something like that ? > > {code} > package x.y.z; > > import org.slf4j.Logger; > > import org.slf4j.LoggerFactory; > > import org.apache.sling.junit.rules.TeleporterRule; > > import org.junit.ClassRule; > > import org.junit.Test; > > > public class TestClassRuleSST { > > > > private static final Logger LOG = > LoggerFactory.getLogger(TestClassRuleSST.class); > > > > @ClassRule > > public static TeleporterRule teleporter = > TeleporterRule.forClass(TestClassRuleSST.class, "Launchpad"); > > > > @Test > > public void testTest1() { > > LOG.info("test1 run"); > > } > > > @Test > > public void testTest2() { > > LOG.info("test2 run"); > > } > > > } > > {code} > > It fails to run due to : > > java.lang.RuntimeException: Unable to instantiate > org.apache.sling.junit.teleporter.customizers.LaunchpadCustomizer > > at > org.apache.sling.junit.rules.TeleporterRule.createInstance(TeleporterRule.java:123) > > > I am not sure that TeleporterRule was meant to be run as a ClassRule , > that is why I think it isn't as simple unfortunately to run all the test > with a one time tiny bundle creation / installation per test class. > > Regards, > > -Thierry > > > > 2015-12-03 13:46 GMT+01:00 Julian Sedding <[email protected]>: > >> Hi Thierry >> >> TeleporterRule extends ExternalResource >> ExternalResource implements TestRule >> >> From the documentation of TestRule[0]: >> - "[...] TestRules can do everything that could be done previously >> with methods annotated with Before, After, BeforeClass, or AfterClass, >> [...]" >> - "[...] Rule annotates method-level TestRules, and ClassRule >> annotates class-level TestRules. [...]" >> >> Why don't you give it a try?! And then report back whether it worked ;) >> >> Regards >> Julian >> >> [0] http://junit.org/javadoc/latest/org/junit/rules/TestRule.html >> >> On Thu, Dec 3, 2015 at 11:58 AM, Thierry Yge <[email protected]> >> wrote: >> > Hi Julian, >> > >> > currently the teleporter is a method rule, so that is the point, maybe >> we >> > need a teleporter rule that also applies at classrule level. >> > >> > Or maybe I am wrong here :) >> > >> > Regards, >> > -Thierry >> > >> > On Thu, 3 Dec 2015, 10:17 a.m. Julian Sedding <[email protected]> >> wrote: >> > >> >> Hi Thierry >> >> >> >> I haven't tried it, but would imagine that annotating the rule with >> >> @ClassRule should do the trick? >> >> >> >> Regards >> >> Julian >> >> >> >> On Thu, Dec 3, 2015 at 9:44 AM, Thierry Yge <[email protected]> >> wrote: >> >> > Hi Bertrand, >> >> > >> >> > I see that the TeleporterRule always create the same package, and at >> the >> >> > end if you have multiple test in the same test class (which is >> usually >> >> the >> >> > case), and so eachtime it run a test from that class, it does create >> the >> >> > tinybundle , send / install it on target sling instance, run the >> test and >> >> > uninstall the bundle etc... >> >> > >> >> > That is a lot of round trip. Is there a way to instruct the >> Teleporter to >> >> > do the tinybundle like in a "before class", and then run the test as >> >> usual, >> >> > then uninstall only at the end of the test ? >> >> > >> >> > At least if we could limit the number of round trip that would be >> nice, >> >> to >> >> > improve tests execution time. >> >> > >> >> > Any idea if that is already possible to achieve ? >> >> > >> >> > Best regards, >> >> > -Thierry >> >> >> > >
