@babel/core internal test skips fail when citgm run locally

未关闭
#1,194 6 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
半天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
javascript, nodejs

调研方向

Start with lib/lookup.json, where the per-package citgm entries such as @babel/core and jose define their skip settings. The failures are in packages/babel-traverse/test/traverse.js, around the deprecated-types and deprecated-aliases tests that expect a console warning. Check how citgm runs the suite outside Jenkins, where the temp directory differs from NODE_TEST_DIR. Done means the proposed CITGM environment variable is set for these runs and those two tests are skipped only when it is true.

由索引模型根据 Issue 内容生成。

描述

Situation

When cigtm @babel/core is run outside of Node.js Jenkins CI, it fails to skip tests that it intended to skip for citgm.

error:                     |
error:                     | Summary of all failing tests
error:                     | FAIL packages/babel-traverse/test/traverse.js
error:                     | traverse > traverse.explode > deprecated types and aliases > should warn for deprecated node types
error:                     | Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)
error:                     |
error:                     | Expected: StringMatching /Visitor `NumberLiteral` has been deprecated, please migrate to `NumericLiteral`[^]+at.+testFn1/
error:                     |
error:                     | Number of calls: 0
error:                     | at testFn1 (file:///tmp/be09bd18/@babel/core/packages/babel-traverse/test/traverse.js?1791788834095:513:30)
error:                     | at async file:///tmp/be09bd18/@babel/core/node_modules/tinypool/dist/esm/entry/worker.js:72:20
error:                     |
error:                     | traverse > traverse.explode > deprecated types and aliases > should warn for deprecated aliases
error:                     | Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)
error:                     |
error:                     | Expected: StringMatching /Visitor `ModuleDeclaration` has been deprecated, please migrate to `ImportOrExportDeclaration`[^]+at.+testFn2/
error:                     |
error:                     | Number of calls: 0
error:                     | at testFn2 (file:///tmp/be09bd18/@babel/core/packages/babel-traverse/test/traverse.js?1791788834095:529:30)
error:                     | at async file:///tmp/be09bd18/@babel/core/node_modules/tinypool/dist/esm/entry/worker.js:72:20
error:                     |
error:                     |
error:                     | Test Suites: 1 failed, 275 passed, 276 total
error:                     | Tests:       2 failed, 16 skipped, 36969 passed, 36987 total

In Node.js Jenkins CI citgm-smoker sets:

temp="$NODE_TEST_DIR"/citgm_tmp

This is however not generally the case if citgm is run in GitHub Actions or on a local system.

In the above example from Ubuntu on GitHub Actions the temp directory is /tmp/be09bd18 and the tests are not skipped.

Suggestion

Add an environment variable CITGM set to true into

https://github.com/nodejs/citgm/blob/37e15454ddfe5aba91955062b7899114c528e7d1/lib/lookup.json#L2-L8

and skip tests in @babel/core based on this environment variable as necessary.

This is used by jose, for example:

https://github.com/nodejs/citgm/blob/37e15454ddfe5aba91955062b7899114c528e7d1/lib/lookup.json#L229-L235

cc: @nicolo-ribaudo @JLHwung @liuxingbaoyu

主要语言
JavaScript
星标
608
派生
163
平均合并
4 天 2 小时
30 天内合并 PR
12

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nodejs/citgm 的其他 Issue

查看 nodejs/citgm 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。