Some error in tests

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Some error in tests

Sarthak Gupta
Hello,
I am testing my project application-glossary. My tests are failing again
https://pastebin.com/Ww28QHzB. Can anyone please help me?

In general, how to read and use stack traces for debugging/removing errors?
I am not pretty good at this. I mean, in this stack trace also there are so
many errors with the same name like "XWikiLogOutputStream". Which line to
look?  How to find where am I going wrong?

application-glossary <https://github.com/xwiki-contrib/application-glossary>

Thanks
Sarthak Gupta
Reply | Threaded
Open this post in threaded view
|

Re: Some error in tests

vmassol
Administrator
HI Sarthak,

> On 5 Oct 2017, at 18:03, Sarthak Gupta <[hidden email]> wrote:
>
> Hello,
> I am testing my project application-glossary. My tests are failing again
> https://pastebin.com/Ww28QHzB. Can anyone please help me?
>
> In general, how to read and use stack traces for debugging/removing errors?
> I am not pretty good at this. I mean, in this stack trace also there are so
> many errors with the same name like "XWikiLogOutputStream". Which line to
> look?  How to find where am I going wrong?

It’s hard to help you with the log. What it says;

* The test failed
* The reason is that Selenium timed out waiting for an element to be present:

        • testNewGlossaryAndInNestedSpace(org.xwiki.glossary.test.ui.GlossaryTest)  Time elapsed: 16.821 sec  <<< ERROR!
        • org.openqa.selenium.TimeoutException:
        • Livetable isn't ready after the timeout has expired.

* There’s a an error in the xwiki logs but I doubt that it’s causing the test failure:

17:24:25.794 [Thread-13] ERROR o.x.t.i.XWikiLogOutputStream - 2017-10-05 17:24:25,792[http://localhost:8080/xwiki/bin/skin/resources/uicomponents/search/searchSuggest.js?h=250790626] WARN  c.x.x.d.XWikiDocument          - A reference to XWikiGuest user as been set instead of null. This is probably a mistake.


<side explanation about XWikiLogOutputStream>

“XWikiLogOutputStream” is just the class that logs the result of executing XWiki: we start automatically XWiki from a Java class in the test and we collect the results and print them in the console. If you’re interested to see how it works:

* In your code https://github.com/xwiki-contrib/application-glossary/blob/master/application-glossary-test/application-glossary-test-tests/src/test/it/org/xwiki/glossary/test/ui/GlossaryTest.java#L42 you extend AbstractTest
* In AbstractTest there is a @BeforeTest annotation on init(). This is executed by JUnit. It starts XWiki:

@BeforeClass
public static void init() throws Exception
{

// Start XWiki
persistentTestContext.start();

}

* It calls startXWiki() in by calling start_xwiki.sh https://github.com/xwiki/xwiki-platform/blob/0effdbb54f0a4e689e0bbfdc5cb91c8abb1db3a4/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-integration/src/main/java/org/xwiki/test/integration/XWikiExecutor.java#L268
* The started process’s STDOUT and STDERR are captured here: https://github.com/xwiki/xwiki-platform/blob/0effdbb54f0a4e689e0bbfdc5cb91c8abb1db3a4/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-integration/src/main/java/org/xwiki/test/integration/XWikiExecutor.java#L239

PumpStreamHandler streamHandler = new PumpStreamHandler(new XWikiLogOutputStream(XWikiLogOutputStream.STDOUT),
    new XWikiLogOutputStream(XWikiLogOutputStream.STDERR));

XWikiLogOutputStream uses the following logger to log what it captures:
https://github.com/xwiki/xwiki-platform/blob/8793d8438ebfb7cfe40d9b4ce31d9f791f563187/xwiki-platform-core/xwiki-platform-test/xwiki-platform-test-integration/src/main/java/org/xwiki/test/integration/XWikiLogOutputStream.java#L47

That’s why you see XWikiLogOutputStream in the logs…

</side explanation about XWikiLogOutputStream>


So I don’t know what’s wrong with your test. Check the screenshot (you’ll see a reference to it in the logs):

17:24:48.504 [main] INFO  org.xwiki.test.ui.TestDebugger - Screenshot for failing test [GlossaryTest-testGlossary] saved at [/home/sarthak/Desktop/Workspace1/application-glossary/application-glossary-test/application-glossary-test-tests/target/screenshots/GlossaryTest-testGlossary.png].

This is what Selenium was seeing when it failed. That can help you understand why some element wasn’t visible.

To help you further I’d need to execute your tests. I don’t have the time right now. Since the glossary app is very close to the FAQ app, I’d suggest you try to run the FAQ app tests, see if they work for you and try to mimick what they do.

Thanks
-Vincent



>
> application-glossary <https://github.com/xwiki-contrib/application-glossary>
>
> Thanks
> Sarthak Gupta