小编Col*_*ber的帖子

如何防止mocha退出状态为1的进程

我写了一个简单的node.js应用程序,现在我想添加一些测试.现在我只有一些示例测试来测试我用于测试的Gitlab-CI,SonarQube和Mocha.

现在我的问题是,我想解析摩卡的结果(记者是声纳摩卡 - 记者).我的问题是,如果测试失败,mocha会以状态1退出进程.这意味着gitlab-ci正在破坏构建并且不会运行到最后.所以我不能解析它应该的结果.

有没有办法配置mocha不破坏我的构建,以便它只将结果保存在这个xml文件中?

我开始摩卡与:

./node_modules/.bin/mocha -R mocha-sonar-reporter --recursive --no-exit
Run Code Online (Sandbox Code Playgroud)

并在我的package.json我有配置:

"config": {
    "mocha-sonar-reporter": {
      "outputfile": "build/reports/tests/TEST-mocha.xml"
    }
  },
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js node.js

3
推荐指数
1
解决办法
1690
查看次数

NodeJ的setInterval而不延长过程寿命

我简化了它以更好地了解我的需要:我要做的任务是,我们有一个漫长的未知的nodejs进程(有很多排队的异步函数,我们不知道它们何时完成或类似的工作),并且想要有一个更新过程,我们将当前过程状态存储在数据库中。为此,我们有一个启动(它存储“开始”),一个结束过程位于之上process.on('beforeExit', function () { ... });。现在,我们必须处理客户要求的“仍在运行”过程。为此,我们想每十分钟更新一次带有时间戳的运行状态(此函数已经存在,并且称为state.setRunningState()

现在我有一个问题,我如何每十分钟触发一次该功能。为此,我打算在工作过程的每个事件上触发此函数,并比较它是否早于10分钟。问题是:有时会有更多的时间没有任何事件。所以第二个选择是setInterval(),这就是我的问题:如果我使用setInterval,我的nodejs进程将永远不会结束,因此该进程将无限运行直到清除Interval。但我也不知道该何时打电话clearInterval()

所以问题是:有没有一种方法可以创建这样的超时而不延长nodejs进程的生存时间。如果一切都完成了,它应该结束并忽略其余时间间隔。

javascript asynchronous settimeout setinterval node.js

1
推荐指数
1
解决办法
1383
查看次数