js test are the longer ~8 minutes vs ~3 for Python, and fails the more often.
Hopefully this will speedup the build and have less test relaunched when we
have a random faillure. Splitting should make the js test a bit faster
websocket connections fail with 426 because phantomjs implements a super old draft of webosockets that recent tornado doesn't support
This refused to run in that situation with an informative message.
Because of the profile directory searching algorithm, if the current
working directory has a directory named 'profile_default', that will
be used instead of the temporary profile directory the tests expect.
Casper supports producing xunit output. WIth this, our --xunit flag gets
passed down to the JS test process. This should give nicer output for
JS test failures on Jenkins.
This commit contains 16 more, squashed commits:
Added slimerjs flag
Fixed some bugs with flag code
Figured out how to add arg correctly
Cleanup
Improvements to the test framework for FF
Log to see if slimmer is actually running
Added print in controller to debug
Added full logging to casperjs
Remove the special logging logic since it was caussing a failure
remove notebook.dirty = false line in favor of
overwritting onbeforeunload.
Capture output for slimerjs
Fixed iptestcontroller rebase issues
Fixed rebase issues.
Wait for notebook to load completely before testing
Fixed stdout capture for slimerjs tests.
Clean-up comments in util.js
Added slimerjs to Travis
Fixed indent .travis.yml
Comment out slimerjslauncher env var.
Removed zmq flag which doesn't work there anyways,
it was added by me in a recent commit
Fixed travis yaml,
broken because of rebase
If the test controller tries to read the file while the server it has
started is in the middle of writing it, it gets invalid JSON and fails.
This just loops again until we have valid JSON to read.
this way those running the test suite can discover that there are a
bunch of js test groups. New output of `iptest -j` looks like this
```
Test group: kernel.inprocess -------------------------------------- OK
Test group: config ------------------------------------------------ OK
Test group: extensions -------------------------------------------- OK
Test group: lib --------------------------------------------------- OK
Test group: testing ----------------------------------------------- OK
Test group: core -------------------------------------------------- OK
Test group: terminal ---------------------------------------------- OK
Test group: utils ------------------------------------------------- OK
Test group: kernel ------------------------------------------------ OK
Test group: nbformat ---------------------------------------------- OK
Test group: qt ---------------------------------------------------- OK
Test group: autoreload -------------------------------------------- OK
Test group: html -------------------------------------------------- OK
Test group: nbconvert --------------------------------------------- OK
Test group: parallel ----------------------------------------- NOT RUN
Test group: js/base ------------------------------------------ NOT RUN
Test group: js/notebook -------------------------------------- NOT RUN
Test group: js/widgets --------------------------------------- NOT RUN
Test group: js/tree ------------------------------------------ NOT RUN
Test group: js/casperjs -------------------------------------- NOT RUN
Test group: js/services -------------------------------------- NOT RUN
```
It can encounter a weird segfault on OS X with sqlite when Qt is present (?!)
The main reason to use the fork was to get the port number,
but this is easy now that notebooks write a server-info file.
Further advantage is that the symptom of a failed server start
is no longer silence and hanging tests, but an actual failure with the server's log output.
Add a setup() method to be called when we know we're going to use a test
group, for creating temporary dirs etc., and a print_extra_info() method
to display extra information.