排毒模拟文件

Posted

技术标签:

【中文标题】排毒模拟文件【英文标题】:Detox mocking files 【发布时间】:2019-04-02 13:46:59 【问题描述】:

我正在使用 Detox 9.0.4 和 React-native 0.57.2,并且正在尝试模拟文件。 在他们的documentation 之后,我在运行构建时添加了RN_SRC_EXT=e2e.js 环境变量,并将getSourceExts: () => process.env.RN_SRC_EXT ? process.env.RN_SRC_EXT.split(',') : [] 添加到我们的打包程序配置中(rn-cli.config.js)。

在我们将使用更新后的 Metro Bundler 的 React-Native 升级到 0.57 之前,这一直很好,所以我相应地更改了 rn-cli.config.js

const blacklist = require('metro-config/src/defaults/blacklist');

module.exports = 
  resolver: 
    blacklistRE: blacklist([/react-native\/local-cli\/core\/__fixtures__.*/]),
    sourceExts: process.env.RN_SRC_EXT ? process.env.RN_SRC_EXT.split(',') : []
  
;

但是sourceExts 会导致常规构建失败。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

如果您不明确指定新语法似乎不会使用 JS 文件,因此解决方案是在每种情况下都添加它。

rn-cli.config.js 文件:

const blacklist = require('metro-config/src/defaults/blacklist');

module.exports = 
  resolver: 
    blacklistRE: blacklist([/react-native\/local-cli\/core\/__fixtures__.*/]),
    sourceExts: process.env.RN_SRC_EXT ? process.env.RN_SRC_EXT.split(',') : []
  
;

当你传递 RN_SRC_EXT 变量时,在我的例子中是在 npm 命令中,我还传递了 'js' 作为第二个扩展名:

"test:e2e-build": "RN_SRC_EXT='e2e.js,js' detox build -c ios.sim.release"

【讨论】:

这个模拟配置在 react-native 0.61.5 中不起作用,有什么想法吗?

以上是关于排毒模拟文件的主要内容,如果未能解决你的问题,请参考以下文章

使用文件扩展名 e2e.js 进行排毒模拟

没有模拟器的 iPad 上的排毒测试

如何用排毒模拟@react-native-community/geolocation?

排毒不会在 Circle CI 上启动 iOS 模拟器

React Native Detox 模拟文件

排毒:iOS 模拟器如何在键盘上按 Next