Npm 如何获取业力返回/退出代码?

Npm 如何获取业力返回/退出代码?,npm,karma-runner,karma-jasmine,bamboo,angular-cli,Npm,Karma Runner,Karma Jasmine,Bamboo,Angular Cli,我正在尝试对Bambol CI执行一些单元测试。正如Karma配置中所建议的,我确实有SingleRun=true。 记者用的是“进步”。 由于我们使用Angular CLI构建应用程序,所以我利用了我设置为npm脚本的ng test--build=false命令。因此,我使用命令npmrun 问题-我能够运行测试,有些通过,有些失败,但是,只要我能够运行测试,我的任务总是返回成功 我尽量避免使用吞咽/咕噜声,所以如果可能的话,让我知道一些没有吞咽/咕噜声的事情。我也尝试过直接调用Karma s

我正在尝试对Bambol CI执行一些单元测试。正如Karma配置中所建议的,我确实有
SingleRun=true。
记者用的是“进步”。 由于我们使用Angular CLI构建应用程序,所以我利用了我设置为npm脚本的
ng test--build=false
命令。因此,我使用命令
npmrun

问题-我能够运行测试,有些通过,有些失败,但是,只要我能够运行测试,我的任务总是返回成功


我尽量避免使用吞咽/咕噜声,所以如果可能的话,让我知道一些没有吞咽/咕噜声的事情。我也尝试过直接调用
Karma start
,但这也没有帮助。

尝试添加脚本任务,而不是命令。在脚本正文中,您可以以相同的方式运行脚本,并尝试使用“$?”捕获退出命令,然后手动发送退出代码。如果测试失败,还要确保脚本返回非零代码

if [ "$?" != "0" ]; then
    echo "The script returned non-zero error code!" >&2
    exit 1
fi

现在可以通过业力找到正确的状态。 问题-当我们通过ng测试执行业力时。因果报应返回的所有退出状态都被ng消耗。因此,只要我们能够运行测试(不管测试失败与否),我们就可以获得“成功”


解决方案-直接呼叫业力。通过这种方式,我们可以处理退出状态,这在CI期间很有帮助。

感谢您抽出时间。然而,我怀疑这是否有效。原因是,因为我使用ng测试来运行karma测试,所以它消耗karma返回的退出状态,所以只要我能够运行测试,它就表示无论测试失败都是好的。(是的,我也找到了解决方法。现在我正在直接运行业力)这个解决方法对我有效,非常感谢!我被它缠住了好几个小时@TypeScripter,即使使用ng测试,您也可以捕获退出代码,至少在我的例子中是这样。在Jenkins中,我调用一个shell脚本,它进入angular项目文件夹,运行这个:ng test--browsers ChromeHeadless--single run,然后用exit 1插入上面的代码段。工作起来很有魅力!这个解决方案对我也有效。谢谢您甚至可以从package.json运行任何自定义脚本,例如npm run code-coverage。我们的测试套件通过了,我们收到了一条成功消息,但无论发生什么情况,
ng
的退出状态始终为1。