Улучшение производительности JEST-тестирования с помощью vue.js - PullRequest
0 голосов
/ 07 мая 2018

У меня есть простое приложение с несколькими компонентами и только одним тестом для компонента Login.vue, вызов jest занимает от 20 до 10 секунд. Есть ли способ улучшить производительность или все получают одинаковые результаты.

jest.conf.js

const path = require('path')

module.exports = {
  rootDir: path.resolve(__dirname, '../../'),
  moduleFileExtensions: [
    'js',
    'json',
    'vue'
  ],
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1'
  },
  transform: {
    '^.+\\.js$': '<rootDir>/node_modules/babel-jest',
    '.*\\.(vue)$': '<rootDir>/node_modules/vue-jest'
  },
  testPathIgnorePatterns: [
    '<rootDir>/test/e2e'
  ],
  snapshotSerializers: ['<rootDir>/node_modules/jest-serializer-vue'],
  setupFiles: ['<rootDir>/test/unit/setup'],
  coverageDirectory: '<rootDir>/test/unit/coverage',
  collectCoverageFrom: [
    'src/**/*.{js,vue}',
    '!src/main.js',
    '!src/router/index.js',
    '!**/node_modules/**'
  ]
}

С покрытием

With coverage

Без покрытия

Without coverage

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

Добавление корневых каталогов, кажется, улучшает тест на несколько секунд.

roots: [
    '<rootDir>/src',
    '<rootDir>/test'
  ],

PASS тест / единица / спецификации / Login.spec.js (5.647s)

Login.vue

✓ has login method (21ms)

1 Ответ

0 голосов
/ 07 мая 2018

У меня была похожая проблема с шуткой, занимающей слишком много времени.

То, что я сделал, оказало большое влияние на ограничение тестового каталога. Вместо того, чтобы просмотреть папку src для тестирования, я определил папку, в которой находятся модульные тесты, путем определения корневой папки

"roots": [
  "<rootDir>/test/jest"
]

или

ЦСИ

  "modulePathIgnorePatterns": [
    "<rootDir>/tmp"
  ],
  "testPathDirs": [
    "<rootDir>/app/client",
    "<rootDir>/lib/client"
  ],

Другое, что вы можете сделать, это использовать скомпилированные версии зависимостей исх

Я этого не проверял, но, похоже, это тоже должно помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...