我正在使用detox,jet,mocha和react-native。
由于我们所有的本机代码都使用import,因此我试图使我的Mocha测试了解es6 import语句。
我已经能够做到这一点,但是测试的开始时间从10s增加到2+分钟(这使我认为我们正在转换整个node_modules文件夹)。
我们正在使用以下配置启动Mocha:
--recursive
--timeout 120000
--reporter spec
--slow 1000
--retries 3
--exit
--require ./e2e/config.js
--require jet/platform/node
--require ./e2e/helpers
config.js文件具有以下代码:
require('@babel/register')({
cache: true,
presets: [require('metro-react-native-babel-preset')],
plugins: [require('@babel/plugin-transform-runtime').default],
only: ['./e2e', './js'],
ignore: ['node_modules']
});
我不确定为什么需要plugin-transform-runtime,但是没有它,我会得到那些:
ReferenceError: regeneratorRuntime is not defined
at Context._callee2 (e2e/init.js:11:7)
init.js 11:7是async()=> {}->,所以它无法转换。但为什么。 React-Native具有metro-react-native-babel-preset
,我认为这足以编译我们的代码-最后,当直接运行react-native时就足够了。
我该如何找出需要那么多时间的东西?我看到在node_modules/.cache/@babel/register中生成的babel缓存大约为700kb。有关在@babel寄存器中查找位置的任何提示?