【问题标题】:Test passes locally, but consistently fails in a Jenkins job - Node, Express, Mocha测试在本地通过,但在 Jenkins 作业中始终失败 - Node、Express、Mocha
【发布时间】:2022-02-02 19:40:56
【问题描述】:

我有一个 Mocha 集成测试作为 Node 测试脚本的一部分。合并新功能后,测试在本地发布分支上一致通过。在将代码合并到 master 并尝试在不同的环境(我们称之为 env B)上构建 Jenkins 作业后,相同的测试在该环境中始终失败。

测试包含一个Chai shallowDeepEqual assertion。测试失败是因为(出于某种原因)预期结果和实际结果的项目顺序不同。显然,编辑断言不是一种选择。

我尝试过的:

  1. 本地运行npm install,确实修改了一些包,但对测试没有影响
  2. 检查了本地和 env B 上的节点版本。将本地版本更改为 env B 上使用的版本(我使用 nvm,节点版本是 v12 LTS)对测试没有影响。

经过一番挖掘,我发现问题可能与Jenkins caching有关,但我没有发现在构建之前强制清除缓存的简单方法。

【问题讨论】:

    标签: node.js jenkins caching automated-tests mocha.js


    【解决方案1】:

    在 npm install (1) 之后,我注意到 package-lock.json 文件与当前分支存在差异。提交并合并 diff 后,Jenkins 作业现在通过了。

    我假设测试失败是因为 Jenkins 使用了缓存的依赖项。在我承诺之后 新版本的 package-lock.json,Jenkins 可能已经注意到依赖项更改并重建缓存。

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 2022-12-05
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      • 2019-12-07
      相关资源
      最近更新 更多