Jest测试中出现“__DEV__未定义”错误

4

我遇到的问题是在运行jest时出现了错误信息“__DEV__未定义”。因此,我已经查阅了StackOverflow和其他谷歌帖子。有些人建议我删除我的.babelrc文件,但实际上我需要这个文件。还有其他人建议添加...

"globals": {
  "__DEV__": true
}

关于我的package.json文件,我已经处理过了。我甚至删除了我的node_modules文件夹并重新安装了一遍,但问题仍然存在。奇怪的是,之前它能正常工作,但现在不行了。


顺便提一下,当我在我的globalSetup文件中导入一个组件时,我遇到了这个问题。将此设置从globalSetup移动到setupFilesAfterEnv就解决了问题,因为jest测试环境会在运行列在setupFilesAfterEnv中的文件之前加载。 - Joshua Pinter
4个回答

5
您可以在React Native项目的根目录中创建一个jest.config.json文件,并将其全局添加如下:
{
"jest": {
    "globals": {
    "__DEV__": true
    }
 }
}

2

只需在测试文件中添加globals.DEV = true或在jest settingsglobals部分设置即可。


你能详细说明是哪个测试文件吗?是每一个都要吗? - LemonPie
在每个测试文件中,您需要将“DEV”设置为true以测试您的源代码。 - Andreas Köberle
这是我所有的文件。我尝试将其添加到每个文件中,但是我仍然收到此错误。有趣的是,我认为这发生在我执行以下代码行时:import 'react-native'; - LemonPie
结果发现只有在js目录内运行jest时才会出现该错误。js目录位于根目录内。我这样做是因为最初在根目录中运行jest时出现了错误“路径必须是字符串。接收到[ '/Users/someone/app' ]”。但是,如果我在根目录上运行npm test,它知道如何找到jest并正常运行。但是为什么呢? - LemonPie

1
我在运行React Native应用程序内的Detox E2E测试时遇到了这个问题。之前一切都正常,但是后来升级了我的Mac OS和Xcode,就开始抛出“引用错误DEV未定义”的错误。不确定为什么之前可以,然后在那之后就出错了。
当我删除从我的React Native应用程序中导入到Detox E2E测试中的任何代码时,我的问题得到了解决。因此,问题是导入任何来自app/文件夹的JavaScript代码。我有一个简单的实用程序日志函数,它包装了console.log,这是罪魁祸首。我不需要修改任何jest配置。

0
对于遇到这个问题的任何人,我通过在终端中运行npm update jest来更新我的jest,这为我解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接