#vue.js #unit-testing #jestjs
Вопрос:
Я новичок в Jest и тестирую свое приложение Nuxt JS с помощью модульного тестирования. У меня настроено много тестовых файлов, и мне нужно импортировать различную логику в каждый тестовый файл, например, мою конфигурацию проверки Vee.
Я попытался добавить его в setup.js
файл и включить это, setupFilesAfterEnv
но он не включается.
Что я делаю не так?
tests/unit/setup.js
import Vue from 'vue' import { ValidationProvider, ValidationObserver, extend, configure, localize } from 'vee-validate' import * as rules from 'vee-validate/dist/rules'; import en from 'vee-validate/dist/locale/en.json' const config = { mode: 'lazy', classes: { valid: '', invalid: 'tw-border-red-500 dark:tw-border-white' } } Object.keys(rules).forEach(rule =gt; { extend(rule, rules[rule]); }); configure(config) // Register it globally Vue.component('ValidationObserver', ValidationObserver) Vue.component('ValidationProvider', ValidationProvider) // // activate the locales localize({ en });
Мое jest.config.js
досье:
module.exports = { silent: true, testEnvironment: 'jsdom', moduleNameMapper: { '^@/(.*)
И один из моих тестовых файлов называется LoanAmount
:
import { mount } from '@vue/test-utils' import flushPromises from 'flush-promises'; import LoanAmount from '@/components/Form/Steps/Loan/LoanAmount' describe('LoanAmount', () =gt; { test('is a Vue instance', () =gt; { const wrapper = mount(LoanAmount) expect(wrapper.vm).toBeTruthy() }) test('amount is available for value', async () =gt; { const wrapper = mount(LoanAmount) await flushPromises() const amount = wrapper.findAll('.jest__amount-input') expect(amount.exists()).toBe(true) }) })
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
module.exports = { rootDir: path.resolve(__dirname, '../../'), moduleFileExtensions: [ 'js', 'json', 'vue' ], transform: { '^. \.js
: 'lt;rootDirgt;/$1', '^~/(.*)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'lt;rootDirgt;/$1', '^vueИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'vue/dist/vue.common.js', }, moduleFileExtensions: ['js', 'vue', 'json'], transform: { '^. \.jsИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'babel-jest', '.*\.(vue)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'vue-jest', 'vee-validate/dist/rules': 'babel-jest' }, collectCoverage: true, collectCoverageFrom: [ 'lt;rootDirgt;/components/**/*.vue', 'lt;rootDirgt;/pages/**/*.vue', ], transformIgnorePatterns: [ 'lt;rootDirgt;/node_modules/(?!vee-validate/dist/rules)', ], setupFilesAfterEnv: [ 'lt;rootDirgt;/tests/unit/setup.js' ] } И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'babel-jest', '.*\.(vue)
: 'lt;rootDirgt;/$1', '^~/(.*)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'lt;rootDirgt;/$1', '^vueИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'vue/dist/vue.common.js', }, moduleFileExtensions: ['js', 'vue', 'json'], transform: { '^. \.jsИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'babel-jest', '.*\.(vue)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: 'vue-jest', 'vee-validate/dist/rules': 'babel-jest' }, collectCoverage: true, collectCoverageFrom: [ 'lt;rootDirgt;/components/**/*.vue', 'lt;rootDirgt;/pages/**/*.vue', ], transformIgnorePatterns: [ 'lt;rootDirgt;/node_modules/(?!vee-validate/dist/rules)', ], setupFilesAfterEnv: [ 'lt;rootDirgt;/tests/unit/setup.js' ] } И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘vue-jest’, ‘. \.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)
: ‘lt;rootDirgt;/$1’, ‘^~/(.*)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘lt;rootDirgt;/$1’, ‘^vueИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘vue/dist/vue.common.js’, }, moduleFileExtensions: [‘js’, ‘vue’, ‘json’], transform: { ‘^. \.jsИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘babel-jest’, ‘.*\.(vue)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘vue-jest’, ‘vee-validate/dist/rules’: ‘babel-jest’ }, collectCoverage: true, collectCoverageFrom: [ ‘lt;rootDirgt;/components/**/*.vue’, ‘lt;rootDirgt;/pages/**/*.vue’, ], transformIgnorePatterns: [ ‘lt;rootDirgt;/node_modules/(?!vee-validate/dist/rules)’, ], setupFilesAfterEnv: [ ‘lt;rootDirgt;/tests/unit/setup.js’ ] }И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘jest-transform-stub’, ‘vee-validate/dist/rules’: ‘babel-jest’ }, transformIgnorePatterns: [ ‘lt;rootDirgt;/node_modules/(?!(vuetify)|(vue-material-design-icons)|(vee-validate/dist/rules)|(vue-picture-input/PictureInput.vue))’ ], setupFiles: [ ‘./tests/unit/jest.setup.js’ ], reporters: [‘default’, ‘jest-junit’], collectCoverageFrom: [ ‘src/**/*.{js,vue}’, ‘!src/**/Application/*.js’ ], testPathIgnorePatterns: [ ‘lt;rootDirgt;/node_modules/’, ‘lt;rootDirgt;/vendor/’, ‘lt;rootDirgt;/web/’ ], coverageThreshold: { global: { branches: process.env.COVERAGE_THRESHOLD_GLOBAL_BRANCH || 37, functions: process.env.COVERAGE_THRESHOLD_GLOBAL_FUNCTIONS || 40, lines: process.env.COVERAGE_THRESHOLD_GLOBAL_LINES || 50 } } }
: ‘lt;rootDirgt;/$1’, ‘^~/(.*)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘lt;rootDirgt;/$1’, ‘^vueИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘vue/dist/vue.common.js’, }, moduleFileExtensions: [‘js’, ‘vue’, ‘json’], transform: { ‘^. \.jsИ один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘babel-jest’, ‘.*\.(vue)И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
:
: ‘vue-jest’, ‘vee-validate/dist/rules’: ‘babel-jest’ }, collectCoverage: true, collectCoverageFrom: [ ‘lt;rootDirgt;/components/**/*.vue’, ‘lt;rootDirgt;/pages/**/*.vue’, ], transformIgnorePatterns: [ ‘lt;rootDirgt;/node_modules/(?!vee-validate/dist/rules)’, ], setupFilesAfterEnv: [ ‘lt;rootDirgt;/tests/unit/setup.js’ ] }И один из моих тестовых файлов называется LoanAmount
:
Если я включу все содержимое из tests/unit/setup.js
своего блока и включу его выше describe
, то это сработает, но я не могу повторять это в каждом тестовом файле.
Ответ №1:
Вы можете использовать setupFiles
недвижимость в jest.config.js
: