Node.js Nightwatch.js始终返回退出代码1

Node.js Nightwatch.js始终返回退出代码1,node.js,jenkins,cucumber,nightwatch.js,exit-code,Node.js,Jenkins,Cucumber,Nightwatch.js,Exit Code,我尝试将我的Nightwatch.js测试集成到Jenkins工作中。如果测试失败,我希望Jenkins构建失败;如果所有测试都通过,我希望构建通过。但是我认识到Nightwatch总是返回退出代码1,不管测试通过还是失败。但是如果所有测试都通过,我希望退出代码0将返回 有人能解决这个问题吗?我使用nightwatch@0.9.19与夜视相结合-cucumber@9.0.0 这是我的夜班电话: ./node_modules/.bin/nightwatch --env chrome 如果所有测试

我尝试将我的Nightwatch.js测试集成到Jenkins工作中。如果测试失败,我希望Jenkins构建失败;如果所有测试都通过,我希望构建通过。但是我认识到Nightwatch总是返回退出代码1,不管测试通过还是失败。但是如果所有测试都通过,我希望退出代码0将返回

有人能解决这个问题吗?我使用
nightwatch@0.9.19
夜视相结合-cucumber@9.0.0

这是我的夜班电话:

./node_modules/.bin/nightwatch --env chrome
如果所有测试都通过了:

./node_modules/.bin/nightwatch --env chrome
echo $?
#Output: 1, but I expect 0
如果我在最后一行使用夜表启动测试,并且测试将通过,那么NPM命令将失败,因为在这种情况下,退出代码1是错误的

> #!/usr/bin/env sh
> ./node_modules/.bin/nightwatch --env $1 $2
>


Starting selenium server... started - PID:  86384
...
 ✔ Element <input#login-form-username> was visible after 41 milliseconds.

 ✔ Element <input#login-form-password> was visible after 36 milliseconds.

 ✔ Element <input#login> was visible after 34 milliseconds.
.
 ✔ Element <a#header-details-user-fullname> was visible after 6438 milliseconds.

 ✔ Element <a#log_out> was present after 22 milliseconds.
..

1 scenario (1 passed)
4 steps (4 passed)
0m16.298s

true
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! e2e-web-tests@1.0.0 test: `scripty "chrome" "--tag=lcm-128"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the e2e-web-tests@1.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/GRme/.npm/_logs/2018-03-22T11_08_36_903Z-debug.log
#/副秘书长/垃圾箱/环境卫生
>./node_modules/.bin/nightwatch--env$1$2
>
正在启动selenium服务器。。。已启动-PID:86384
...
✔ 元素在41毫秒后可见。
✔ 元素在36毫秒后可见。
✔ 元素在34毫秒后可见。
.
✔ 元素在6438毫秒后可见。
✔ 元素在22毫秒后出现。
..
1个场景(1个已通过)
4个步骤(4个通过)
0m16.298s
真的
npm错误!代码失效循环
npm错误!错误1
npm错误!e2e网络-tests@1.0.0测试:`scripty“chrome”“--tag=lcm-128”`
npm错误!退出状态1
npm错误!
npm错误!在e2e web上失败-tests@1.0.0测试脚本。
npm错误!这可能不是npm的问题。上面可能还有其他日志输出。
npm错误!此运行的完整日志可在以下位置找到:
npm错误/Users/GRme/.npm/_logs/2018-03-22T11_08_36_903Z-debug.log

如果我没记错的话,这不仅仅是夜班问题。其他基于selenium的库也会出现这种情况。我想我以前遇到过量角器的问题。我们解决这个问题的方法是解析输出,而不是使用退出代码,并查找任何失败。如果没有找到,则显式返回
0
。这是我上一份工作,所以我很难记住,但我很确定这就是为什么我们必须这样做。因为我们在TFS上遇到了同样的问题。您知道如何解析输出吗?我们在TFS中创建了一个自定义构建步骤来处理它。我对Jenkins不太熟悉,所以我不能说它是否允许您创建自定义构建步骤。在任何情况下,您都应该可以访问全局
afterEach()
函数中的输出。您可以在那里编写一些东西来解析输出并查找失败。我们没有使用库,只是解析输出并使用正则表达式匹配器查找失败的测试。我希望我有一个例子给你们看,但我已经不能再访问那个代码了,因为我不再在那个公司工作了。对不起,我最后的评论是误导性的。在
afterEach()
中我看不到完整的输出,但您可以使用
browser.currentTest.results.failed
检查失败的测试,然后在此基础上找出通过或失败构建的方法。也许可以使用某种标志,如果在测试运行期间出现任何故障,您可以将其翻转。嘿@Martin,看看这里接受的答案是否对您有帮助。