我有一个适用于我当前应用程序的测试套件。
有时我会引入一个错误,这会导致抛出未捕获的异常。
手动运行单元测试时,我可以看到错误。但是当我将它与我们的 CI 系统集成时,该过程仍然返回 0,就好像一切正常。
由于这个积极的退出代码,我们无法检测到错误。我究竟做错了什么?
我有一个适用于我当前应用程序的测试套件。
有时我会引入一个错误,这会导致抛出未捕获的异常。
手动运行单元测试时,我可以看到错误。但是当我将它与我们的 CI 系统集成时,该过程仍然返回 0,就好像一切正常。
由于这个积极的退出代码,我们无法检测到错误。我究竟做错了什么?
感谢 nodeJS 域,我终于解决了这个问题:
这是我的 test/server.coffee,我在其中设置了测试:
d = require("domain").create()
# set up error handling to exit with error code on uncaught exceptions
d.on "error", (err) ->
console.log "Uncaught Exception:", err.message
console.log err.stack
process.exit(1)
before (done) ->
d.run ->
# bootstrap application
done()
这会捕获所有错误,打印跟踪并以退出状态 1 退出。