I want to be able to have a set of Casper JS tests and get an exit code back of 0 on success and non-zero on error or test failure (I want to run the casper command from java and determine if a test passed).
The problem I am having is that an exit code of 0 is always returned. Here is an example test where this happens:
var casper = require('casper').create();
casper.start('http://www.google.com', function() {
this.test.assertEquals(true, casper.cli.options['value']);
});
casper.run(function() {
casper.test.done(1);
});
All of the following commands result in an exit code of 0:
C:/casperjs/bin/casperjs test --value=true C:/Temp/simpletest.js
C:/casperjs/bin/casperjs test --value=false C:/Temp/simpletest.js
C:/casperjs/bin/casperjs --value=true C:/Temp/simpletest.js
C:/casperjs/bin/casperjs --value=false C:/Temp/simpletest.js
How can I invoke Casper and determine whether the tests succeeded or failed/errored from Java?
Your casper test should be like that:
To run:
casperjs simpletest.js --value=true
You should look this answer:
CasperJS passing data back to PHP
Return the Predefined code for failure (for eg for us we gave 99 (random))
Similarly you can define different code for other issues at high level
eg: to get the retry logic in place we can use
onWaitTimeout
codesFirst, you cannot overwrite the casper instance in test mode, see http://docs.casperjs.org/en/latest/testing.html#test-command-args-and-options
Remove
from your code.
Then try
Start casperjs with
so that each test will exit with code 1.
Then in Java
Of course you need to change the paths to suit your environment.
Hope that helps!