[ https://issues.apache.org/jira/browse/SLING-4280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14272372#comment-14272372 ]
Chetan Mehrotra commented on SLING-4280: ---------------------------------------- bq. I guess the root cause is that none of the RemoteLogDumper methods get called (checked with a debugger on the client side) - can you spot what I'm doing wrong? Yes for above case the rule is not being invoked as the failure is happening in the {{setupClass}} itself. The {{TestRule}} is invoked only for actual test method invocation. Here as the failure happens in the {{BeforeClass}} annotated method itself the framework does not invoke any test method. JUnit provides a [ClassRule|http://junit.org/javadoc/latest/org/junit/ClassRule.html] which can be possibly hooked into to get a callback. This can be added as an enhancement to current patch {noformat} junit.framework.AssertionFailedError: Expected status 200 for http://localhost:4513/testing/EventsCounter.json (content=<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title>404 No resource found</title> </head> <body> <h1>No resource found (404)</h1> <p>The requested URL /testing/EventsCounter.json resulted in an error in org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServlet.</p> <h3>Request Progress:</h3> <pre> 0 TIMER_START{Request Processing} 0 COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message> 0 LOG Method=GET, PathInfo=/testing/EventsCounter.json 0 TIMER_START{ResourceResolution} 1 TIMER_END{1,ResourceResolution} URI=/testing/EventsCounter.json resolves to Resource=NonExistingResource, path=/testing/EventsCounter.json 1 LOG Resource Path Info: SlingRequestPathInfo: path='/testing/EventsCounter.json', selectorString='null', extension='json', suffix='null' 1 TIMER_START{ServletResolution} 1 TIMER_START{resolveServlet(NonExistingResource, path=/testing/EventsCounter.json)} 3 TIMER_END{2,resolveServlet(NonExistingResource, path=/testing/EventsCounter.json)} Using servlet org.apache.sling.servlets.get.DefaultGetServlet 3 TIMER_END{2,ServletResolution} URI=/testing/EventsCounter.json handled by Servlet=org.apache.sling.servlets.get.DefaultGetServlet 3 LOG Applying Requestfilters 3 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter 3 LOG Applying Componentfilters 3 TIMER_START{org.apache.sling.servlets.get.DefaultGetServlet#0} 3 TIMER_END{0,org.apache.sling.servlets.get.DefaultGetServlet#0} 3 TIMER_START{handleError:status=404} 4 TIMER_END{1,handleError:status=404} Using handler org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServlet 5 TIMER_END{5,Request Processing} Dumping SlingRequestProgressTracker Entries </pre> <hr> <address>ApacheSling/2.3 (jetty/8.1.14.v20131031, Java HotSpot(TM) 64-Bit Server VM 1.7.0_55, Linux 3.13.0-37-generic amd64)</address> </body> </html> ) Expected :200 Actual :404 <Click to see difference> at org.apache.sling.commons.testing.integration.HttpTestBase.getContent(HttpTestBase.java:434) at org.apache.sling.commons.testing.integration.HttpTestBase.getContent(HttpTestBase.java:409) at org.apache.sling.commons.testing.integration.HttpTestBase.getContent(HttpTestBase.java:401) at org.apache.sling.commons.testing.integration.HttpTestBase.getContent(HttpTestBase.java:396) at org.apache.sling.launchpad.webapp.integrationtest.util.EventsCounterUtil.getEventsCount(EventsCounterUtil.java:33) at org.apache.sling.launchpad.webapp.integrationtest.EventsCounterTest.setupClass(EventsCounterTest.java:51) {noformat} > Enable dumping of remote server logs in case of test failures > ------------------------------------------------------------- > > Key: SLING-4280 > URL: https://issues.apache.org/jira/browse/SLING-4280 > Project: Sling > Issue Type: New Feature > Components: Testing > Reporter: Chetan Mehrotra > Assignee: Chetan Mehrotra > Attachments: SLING-4280.patch, test-fail-output.txt > > > In case of large test suite running on CI server its hard to make out which > logs were created due to execution of which testcase. This makes determining > the cause of testcase failure difficult. Often the server logs are also not > avialable once the build is completed and only source of information is > system out logs captured via junit framework on client side. > This debugging process can be made simpler if the testcase also dumps the > server side logs generated while that testcase executes locally upon failure -- This message was sent by Atlassian JIRA (v6.3.4#6332)