[英]GitHub Actions resolve wrong Node.js path
我正在 Jest 中運行我的測試,並通過 GitHub 操作。 不幸的是,它解決了不正確的路徑。
在我的源文件中,我使用以下邏輯來要求來自同一項目目錄的 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
。 您可以在此處查看失敗工作流的實時示例。 這就是失敗的整個測試。
您知道為什么 GitHub Actions 中的路徑分辨率無法正常工作嗎?
讓我試試,雖然我不熟悉 jest 或 github CI 過程......
測試程序生成的模擬 json 文件位於tests/i18n/en.json
,而您的工作進程正在尋找路徑`${moduleHomeRoot}/i18n/en.json`
。 我想你應該在 jest.mock 中添加 '..',如下所示:
jest.mock(require('path').resolve('..', 'i18n', 'en.json'), () => {
return { title: 'English title', paragraph: 'Hello World' };
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.