I have the following cakefile task to run selenium tests which runs successfully and gets to the end of the tests but doesn't exit.
muffin = require 'muffin' wrench = require 'wrench' http = require 'http' fs = require 'fs' spawn = require('child_process').spawn exec = require('child_process').exec task 'selenium', 'run selenium tests', (options) -> sel = require './test/selenium' app = spawn 'node', ['app.js'] app.stdout.on 'data', (data) -> if /listening on port/.test data selenium = spawn 'selenium' selenium.stdout.on 'data', (data) -> console.log 'stdout: ' + data if /Started.*jetty.Server/.test data sel.run -> app.stdin.end() selenium.stdin.end() console.log 'completed Selenium Tests'
Is there a way I can tell the task to finish? I get the 'completed Selenium Tests' logged in the console.
Trevor Burnham, pointed my in the right direction. But the underlying issue was that the selenium child process i was spawning was a shell script running a java process. So basically when calling app.kill() it was killing the shell script but not the underlying java process.
Thanks for the help.
This recipe can be found in it's original form on Stack Over Flow.