【问题标题】:Unit test fails on Jenkins, not on local (React project)Jenkins 上的单元测试失败,而不是本地(React 项目)
【发布时间】:2017-12-21 11:14:01
【问题描述】:

我的 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 进行测试 + 使用 Istanbul 进行覆盖。

【问题讨论】:

  • 你的本地机器是mac吗?和 jenkins 一个 linux 机器/vm?
  • 这是一个mac,是的。至于詹金斯,我不确定(我自己没有设置)。我该如何检查?

标签: reactjs unit-testing jenkins mocha.js enzyme


【解决方案1】:

因为你有一个 mac,我猜 jenkins 是基于 linux 的。 检查文件名。意思是检查名称是否区分大小写。

您的问题是,当 jenkins(我猜)在 linux 主机中时,mac 不区分大小写。所以说你有这样的文件名

从“../MyCoolDir”导入一个

目录名称是 '../myCoolDir' 它可以在 mac 上工作,但不能在你的 jenkins 上工作。因为 linux 主机将无法找到该文件,因为它没有确切的名称

你可能也想看看这个来配置 git How do I commit case-sensitive only filename changes in Git?

希望对你有帮助

【讨论】:

  • 哇哇,非常感谢。这就是问题所在。我也有一个与伊斯坦布尔不正确的测试覆盖率,这也解决了这个问题。无用的挠头时间:'。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-05-08
  • 2017-03-20
  • 1970-01-01
  • 2017-08-15
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多