dispatch:phantomjs-tests
This package exports a startPhantom
function for server code, which runs your client tests within a PhantomJS page. Meteor test driver packages can depend on this package. See the example implementation here: https://github.com/DispatchMe/meteor-mocha-phantomjs
Usage
In your test driver package package.js
file, add
1api.use('dispatch:phantomjs-tests@0.0.1', 'server');
Then in your server code, do something similar to this:
1import { startPhantom } from 'meteor/dispatch:phantomjs-tests'; 2 3function start() { 4 startPhantom({ 5 stdout(data) { 6 console.log(data.toString()); 7 }, 8 stderr(data) { 9 console.log(data.toString()); 10 }, 11 done(failureCount) { 12 // Your code to run when client tests are done running 13 }, 14 }); 15} 16 17export { start };
And in your client code, you need to set some properties on window
so that the PhantomJS script knows what is happening:
1// Run the client tests. Meteor calls the `runTests` function exported by 2// the driver package on the client. 3function runTests() { 4 // These `window` properties are all used by the phantomjs script to 5 // know what is happening. 6 window.testsAreRunning = true; 7 mocha.run((failures) => { 8 window.testsAreRunning = false; 9 window.testFailures = failures; 10 window.testsDone = true; 11 }); 12} 13 14export { runTests };