单元测试在 Jenkins 上失败,而不是在本地(React 项目)
Unit test fails on Jenkins, not on local (React project)
我的 React 项目的单元测试在本地通过得很好,但在 Jenkins 上失败了。
我在 Jenkins 上收到此错误消息:
Error: Cannot find module '../../../../src/components/Sidebar/MenuList.jsx'
该文件确实存在并像这样导入到我的测试文件中:
import { MenuList } from '../../../../src/components/Sidebar/MenuList.jsx';
并在我的 MenuList.jsx 文件中导出:
export class MenuList extends Component { ... }
我正在使用 Mocha/Enzyme/Sinon 进行测试 + 伊斯坦布尔进行覆盖。
既然你有一个 mac,我猜 jenkins 是基于 linux 的。
检查文件名。意思是检查名称是否区分大小写。
你的问题是 mac 不区分大小写,而 jenkins(我猜)在 linux 主机中。所以说你有一个像这样的文件名
从“../MyCoolDir”导入一个
并且目录名称是 '../myCoolDir' 它可以在 mac 上运行,但不能在你的 jenkins 上运行。因为 linux 主机将无法找到该文件,因为它没有确切的名称
你可能也想看一下这个来配置 git
How do I commit case-sensitive only filename changes in Git?
希望对您有所帮助
我的 React 项目的单元测试在本地通过得很好,但在 Jenkins 上失败了。 我在 Jenkins 上收到此错误消息:
Error: Cannot find module '../../../../src/components/Sidebar/MenuList.jsx'
该文件确实存在并像这样导入到我的测试文件中:
import { MenuList } from '../../../../src/components/Sidebar/MenuList.jsx';
并在我的 MenuList.jsx 文件中导出:
export class MenuList extends Component { ... }
我正在使用 Mocha/Enzyme/Sinon 进行测试 + 伊斯坦布尔进行覆盖。
既然你有一个 mac,我猜 jenkins 是基于 linux 的。 检查文件名。意思是检查名称是否区分大小写。
你的问题是 mac 不区分大小写,而 jenkins(我猜)在 linux 主机中。所以说你有一个像这样的文件名
从“../MyCoolDir”导入一个
并且目录名称是 '../myCoolDir' 它可以在 mac 上运行,但不能在你的 jenkins 上运行。因为 linux 主机将无法找到该文件,因为它没有确切的名称
你可能也想看一下这个来配置 git How do I commit case-sensitive only filename changes in Git?
希望对您有所帮助