браузер не определен для ts-jest и puppeteer - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь создать снимок-тесты с кукловодом для моего машинописного приложения создания реагирования . Регулярное тестирование с jest работает нормально , но как только я пытаюсь создать снимки с помощью browser и мне нужно использовать переменную browser в моем файле .test.ts, который я Мне говорят, что browser is not defined.

Кажется, я не могу обойти эту проблему, хотя пытался решить эту проблему часами.

Для справки, вот мои настройки шуток в моем файле package.json:

  "jest": {
"preset": "jest-puppeteer-preset",
"collectCoverageFrom": [
  "src/**/*.{js,jsx,ts,tsx}"
],
"setupFiles": [
  "<rootDir>/config/polyfills.js"
],
"testMatch": [
  "<rootDir>/src/**/__tests__/**/*.(j|t)s?(x)",
  "<rootDir>/src/**/?(*.)(spec|test).(j|t)s?(x)"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
  "^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
  "^.+\\.tsx?$": "<rootDir>/config/jest/typescriptTransform.js",
  "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
  "^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
  "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$"
],
"moduleNameMapper": {
  "^react-native$": "react-native-web"
},
"moduleFileExtensions": [
  "web.ts",
  "ts",
  "web.tsx",
  "tsx",
  "web.js",
  "js",
  "web.jsx",
  "jsx",
  "json",
  "node",
  "mjs"
],
"globals": {
  "ts-jest": {
    "tsConfigFile": "tsconfig.test.json"
  }
}

И вот зависимости, которые я использую:

"typescript": "^2.9.2",
"puppeteer": "^1.1.1",
"jest-image-snapshot": "^2.3.0",
"jest": "22.4.2",
"jest-puppeteer-preset": "^2.0.1",
"ts-jest": "22.0.1",

Любая помощь будет принята с благодарностью!


РЕШЕНИЕ: В сочетании с отмеченным ответом ниже и этим руководством у меня все получилось. По какой-то причине я пытался получить доступ к browser в качестве глобальной переменной. Оказывается, я делал что-то неправильно с самого начала. Вы должны определить браузер так:

  const browser = await puppeteer.launch({
    headless: true // whether you want to run the test headless
  });

который закончил работать.

1 Ответ

0 голосов
/ 10 сентября 2018

браузер не определен для ts-jest и puppeteer

Вы должны убедиться, что у вас установлен @types/jest-environment-puppeteer, поскольку он обеспечивает глобальное определение browser.

Подробнее

...