Как исправить сбой при запуске моих тестовых пакетов из-за библиотеки tcomb-form-native для React Native? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь выполнить модульное тестирование и интеграционное тестирование для приложения 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)

Я обновил файл package.json после раздела «Тесты» из библиотеки GitHub, https://github.com/gcanti/tcomb-form-native,, но продолжаю получать ту же ошибку.

Меня смущает эта строка из описания тестов ReadMe tcomb-form-native:

  "ios.js"    <<<<<<<<<<<< this needs to be defined!

Я создал приложение React Native с помощью Expo, поэтому у меня нет файла ios.js. Единственное отличие под "jest": от примера кода в GitHub заключается в том, что я также определил "preset": "jest-expo",.

Какие изменения мне нужно внести в мой файл package.json или мои наборы тестов, чтобы мои наборы тестов могли работать? (Они не должны проходить, просто запустите.)


Редактировать:

Я попытался добавить следующий код в package.json, основываясь на верхнем ответе от https://github.com/gcanti/tcomb-form-native/issues/443:

"transformIgnorePatterns": [
  "node_modules/(?!react-native|tcomb-form-native)"
]`

Я добавил код без оригинальных предложенных изменений из библиотеки GitHub ReadMe и добавил его ДОПОЛНИТЕЛЬНО к предлагаемым изменениям. Я все еще получаю SyntaxError: Unexpected identifier, когда я запускаю тесты.


Редактировать # 2:

Я изменил изменен import t from 'tcomb-form-native'; на var t = require('tcomb-form-native');, и я все еще получаю SyntaxError: Unexpected identifier.

...