我正在尝试为React Native应用程序执行单元测试和集成测试。在运行yarn test --coverage
时,由于tcomb-form-native库的原因,我的一些测试套件无法运行。
我收到此特定错误:
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import t from "./lib";
SyntaxError: Unexpected identifier
13 | // import { gray } from 'ansi-colors';
14 |
> 15 | import t from 'tcomb-form-native';
| ^
16 |
17 | const Form = t.form.Form;
18 |
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
at Object.<anonymous> (screens/ReservationScreen.js:15:1)
我从库的GitHub https://github.com/gcanti/tcomb-form-native的“ Tests”部分更新了package.json
文件,但仍然遇到相同的错误。
我对tcomb-form-native自述测试描述的这一行感到困惑:
"ios.js" <<<<<<<<<<<< this needs to be defined!
我使用Expo创建了React Native应用,所以我没有ios.js文件。 "jest":
与GitHub中示例代码的唯一区别在于,我还定义了"preset": "jest-expo",
。
我需要对package.json
文件或测试套件进行哪些更改才能运行测试套件?(它们不必通过,只需运行即可)
编辑:
我尝试根据https://github.com/gcanti/tcomb-form-native/issues/443的最高答案将以下代码添加到package.json
:
"transformIgnorePatterns": [
"node_modules/(?!react-native|tcomb-form-native)"
]`
我添加了没有该库的GitHub自述文件的原始建议编辑的代码,并将其添加到建议的编辑中。运行测试时,我仍然收到SyntaxError: Unexpected identifier
。
编辑#2:
我将import t from 'tcomb-form-native';
更改为var t = require('tcomb-form-native');
,但我仍收到SyntaxError: Unexpected identifier.