【发布时间】:2020-11-18 03:34:32
【问题描述】:
我正在 Jest 中和通过 GitHub 操作运行我的测试。不幸的是,它解析的路径不正确。
在我的source file 中,我使用以下逻辑来要求来自同一项目目录的 JSON:
const json = require(require('path').resolve('.') + 'i18n', 'en.json');
在 Jest 中,路径被 jest.mock 模拟:
jest.mock(require('path').resolve('.', 'i18n', 'en.json'), () => {
return { title: 'English title', paragraph: 'Hello World' };
});
在本地这工作正常,但是当我将更改推送到 GitHub 操作时,项目文件夹的名称是重复的:
Cannot find module '/home/runner/work/simple-translator/simple-translator/i18n/en.json' from 'tests/translator.node.test.js'
我认为它应该只包含一次simple-translator。
您可以看到失败的工作流here 的实时示例。
这就是整个test that fails。
你知道为什么 GitHub Actions 中的路径解析不能正常工作吗?
【问题讨论】:
-
我们的工作流程中也有双重回购名称,但一切正常。但是为什么它们包含两次会很有趣。尝试使用 process.cwd() 或 GitHub Environment var GitHub.workspace
-
我用 process.cwd() 和 __dirname 尝试过,但没有成功。唯一需要测试的是 GitHub.workspace
标签: javascript node.js jestjs github-actions