Импортировать модуль проекта в Cypress - PullRequest
0 голосов
/ 10 ноября 2018

Я хочу импортировать некоторые константы из моего проекта в мои тесты (например, для тестирования localstorage операций). При использовании import (или require) из моей IDE не отображаются ошибки:

enter image description here

При запуске Cypress я получаю: Error: Cannot find module

enter image description here

Модуль написан на TypeScript ( Config.ts ), несмотря на то, что не использует какую-либо особую функцию.

Я не изменял ни один из командных или вспомогательных сценариев. Но у меня в папке Cypress есть tsconfig.json , чтобы мое приложение Create React могло работать без конфликтов с Jest.

{
  "extends": "../tsconfig",
  "include": ["../node_modules/cypress/types", "**/*.ts"]
}

Я пытался добавить .. / src или .. / src / ** / *. Ts в include, но, похоже, ничего не работает.

Что я делаю не так? Спасибо!

1 Ответ

0 голосов
/ 22 января 2019

Добавить cypress-webpack-препроцессор и ts-загрузчик , если их еще нет:

yarn add --dev @cypress/webpack-preprocessor ts-loader

В cypress / plugins / index.js просто добавьте это в вашу конфигурацию:

const wp = require('@cypress/webpack-preprocessor')

module.exports = (on) => {
  const options = {
    webpackOptions: {
      resolve: {
        extensions: [".ts", ".tsx", ".js"]
      },
      module: {
        rules: [
          {
            test: /\.tsx?$/,
            loader: "ts-loader",
            options: { transpileOnly: true }
          }
        ]
      }
    },
  }
  on('file:preprocessor', wp(options))
}

Cypress теперь должен загрузить ваши файлы TS.

Дополнительная информация о полной конфигурации TS: https://basarat.gitbooks.io/typescript/docs/testing/cypress.html

...