问题:咖啡脚本 cakefile 任务未完成

我有以下 cakefile 任务来运行 selenium 测试,该测试成功运行并到达测试结束但不退出。

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'

有没有办法告诉任务完成?我在控制台中记录了“完成的 Selenium 测试”。

解答

特雷弗·伯纳姆(Trevor Burnham)指出了我正确的方向。但根本问题是我生成的 selenium 子进程是一个运行 java 进程的 shell 脚本。所以基本上在调用 app.kill() 时,它正在杀死 shell 脚本,而不是底层的 java 进程。

谢谢您的帮助。

Logo

更多推荐