【问题标题】:Travis CI Jest Preset react-native not foundTravis CI Jest Preset react-native not found
【发布时间】:2017-12-20 09:47:04
【问题描述】:

我有一个 react-native 应用程序。

今天我用 Jest 添加了单元测试,并连接了 Travis CI。当我在本地运行测试时,一切都很好。但是当他们在 Travis 中运行时,我得到了这个错误:

Validation Error: Preset react-native not found.

谢谢。

【问题讨论】:

  • 检查你的 package.json 看看 jest-react-native 是否在里面。如果没有,请执行 npm install –save jest-react-native。
  • 不是。但我认为 Facebook 说它包含在最新版本中。我几天前启动了我的应用程序
  • 你是对的。我认为不再需要它了。我现在不确定。然后检查 babel-jest 和 Babel-preset-react-native。可能在您的本地节点模块中但未保存到 package.json 的内容
  • 所有内容都包含在内,但仍然无法正常工作
  • 如果您的rootDir 设置不正确,可能会发生这种情况

标签: javascript reactjs react-native travis-ci jestjs


【解决方案1】:

就我而言,发生这种情况是因为我正在开发一个只有'react-native' 的模块(库),如peerDependencies。将'react-native' 添加到"devDepenencies" 解决了这个问题。

【讨论】:

    【解决方案2】:

    我遇到了这个问题,甚至在一个新项目中尝试过。

    我通过删除来修复它

    "jest": {
        "preset": "react-native"
    }
    

    来自我的 package.json。

    这样做使我能够运行npm run testjest 来运行jest

    我的猜测(我可能是错的)是新版本的 jest 不再需要 packages.json 文件中的配置了。

    【讨论】:

      【解决方案3】:

      我通过更新 jest、jest-ci 包解决了这个问题。

      为什么我们会遇到这个问题?

      我比较了react-native从版本0.57.00.59.3,发现react-nativejest-preset.js替换了jest-preset.json,但是jest旧版本只支持jest-preset.json

      所以我们需要做的就是将jestjest-cli 升级到支持.js.json 的最新版本

      如果你能找到,你可以检查 'node_modules/jest-config/build/normalize.js'

      const PRESET_EXTENSIONS = ['.json', '.js'];
      

      你的版本是正确的。

      【讨论】:

        猜你喜欢
        • 2018-10-27
        • 2018-05-13
        • 2019-12-02
        • 1970-01-01
        • 2021-03-26
        • 1970-01-01
        • 2019-06-10
        • 2022-12-04
        • 1970-01-01
        相关资源
        最近更新 更多