【问题标题】:How do I move jest tests to a /test folder and get them to run?如何将 jest 测试移动到 /test 文件夹并让它们运行?
【发布时间】:2017-04-19 05:36:00
【问题描述】:

edit:我很确定这个问题已经过时了,从那时起 Jest 发生了变化。不要假设答案现在会起作用,甚至是相关的。

Jest 期望测试位于 _tests_ 文件夹中或命名为 blah.test.js。我不喜欢这两种模式。我希望我的测试文件位于/test 中,并将它们命名为test/index.ios.test.js 似乎是多余且愚蠢的。我的第一个尝试是将 package.json 中的 jest 配置更改为:

"jest": {
    "testPathDirs": ["test"],
    "testRegex": "\\.(js|jsx)$",
    "preset": "react-native"
}

成功找到测试但都失败了:

Cannot find module 'setupDevtools' from 'setup.js'
  
  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:151:17)
  at Object.<anonymous> (node_modules/react-native/jest/setup.js:23:1)

该函数在node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js 中。我如何告诉 Jest 在哪里可以找到它?

【问题讨论】:

    标签: javascript reactjs react-native jestjs


    【解决方案1】:

    我认为在jest.config.js 中设置roots: ['&lt;rootDir&gt;/test/'] 很简单

    module.exports = {
     roots: ['<rootDir>/test_unit/'],
     ...
    }
    

    它对我很有效。

    【讨论】:

      【解决方案2】:

      我认为最好的方法是配置testMatch。默认为:

      [ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]
      

      因此,您可以将__tests__ 更改为tests,或者在数组中添加一个新条目来检查两者。我在 package.json 中使用以下内容:

        "jest": {
          "testMatch": [ "**/tests/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]
        },
      

      【讨论】:

      • 这样更好,因为它保留了默认行为。
      • 这是updated link
      【解决方案3】:

      我通过设置正则表达式解决了这个问题,因此它可以在我的./test 文件夹中找到所有.js 文件:

      "jest": {
         "preset": "react-native",
          "globals": {
              "__DEV__": true
          },
          "testRegex": "./test/.*.js$",
          "rootDir": "."
       },
      

      (这里的 jcollum:我不知道 __DEV__ 在那里实际做什么,但如果不是,则会引发错误。开玩笑 17.0.3)

      【讨论】:

      • 这种模式不是要求.test.js吗?如果我将我的 test/index.ios.test.js 重命名为 test/index.ios.js,它将不起作用。
      • 对不起,我误解了你的问题。你是说"./test/.*\\.ios\\.js$",
      • 将您的答案编辑为我最终弄清楚的答案。很难在评论中清晰地发布这样的代码
      猜你喜欢
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2018-09-11
      • 2022-01-22
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多