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.
If one of the two child processes (app and selenium) is still running, the main process will keep running. Calling stdin.end() on them doesn't change this. What you want to do is to force them to die, with the aptly-named kill method:
app.kill()
selenium.kill()
console.log 'completed Selenium Tests'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With