Не запускаются тесты при срабатывании pre-commit hook
Если руками запускать тесты через команду yarn test:unit, тесты отрабатывают правильно, находят ошибки и падают.
Если тесты запускать через lint-staged, который в свою очередь запускается husky, тогда она просто начинает выполнят команду и тесты проходят в любом случае и показывает зеленую галку, что команда выполнена успешно.
Не могу разобраться, почему при git commit не отрабатывают тесты.
lint-staged.config.js
module.exports = {
'*.{js,jsx,ts,tsx,vue}': ['yarn lint --fix'],
// Note: when change extensions list, should change in package.json `lint:css` too
'*.{vue,htm,html,css,sss,less,scss,sass}': ['yarn lint:css'],
'*.[tj]s': ['vue-cli-service'],
};
husky.config.js
module.exports = {
hooks: {
'pre-commit': 'lint-staged',
'commit-msg': 'commitlint -e $HUSKY_GIT_PARAMS',
},
};
jest.config.js
// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/24.x/configuration
module.exports = {
preset: '@vue/cli-plugin-unit-jest',
// The paths to modules that run some code to configure or set up the testing
// environment before each test
// setupFiles: [],
setupFiles: [
'./tests/setup.vue.js',
],
// collectCoverage: true,
// collectCoverageFrom: [
// './src/**/*.{js,vue}',
// '!**/node_modules/**',
// '!./src/plugins/**',
// '!./src/services/backend/**',
// '!./src/services/index.js',
// ],
// coverageReporters: ['html', 'text-summary'],
};
package.json
{
"scripts": {
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"test:coverage": "vue-cli-service test:unit --coverage ",
"lint": "vue-cli-service lint",
"dev": "vue-cli-service serve",
"server": "node ./script/server/index.js",
"docs:build": "vuepress build docs",
"docs:dev": "vuepress dev docs",
"lint:css": "stylelint 'src/**/*.(vue|htm|html|css|sss|less|scss|sass)'"
},
"dependencies": {
"axios": "^0.19.2",
"core-js": "^3.6.4",
"localforage": "^1.7.3",
"lodash": "^4.17.15",
"vue": "^2.6.11",
"vue-router": "^3.1.6",
"vuetify": "^2.2.15",
"vuex": "^3.1.2"
},
"devDependencies": {
"@commitlint/cli": "^8.3.5",
"@commitlint/config-conventional": "^8.3.4",
"@vue/cli-plugin-babel": "^4.2.3",
"@vue/cli-plugin-eslint": "^4.2.3",
"@vue/cli-plugin-router": "^4.2.3",
"@vue/cli-plugin-unit-jest": "^4.2.3",
"@vue/cli-plugin-vuex": "^4.2.3",
"@vue/cli-service": "^4.2.3",
"@vue/eslint-config-airbnb": "^4.0.0",
"@vue/test-utils": "1.0.0-beta.31",
"babel-eslint": "^10.1.0",
"deepmerge": "^4.2.2",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^6.2.1",
"fibers": "^4.0.2",
"husky": "^4.2.3",
"json-server": "^0.15.1",
"lint-staged": "^10.0.8",
"sass": "^1.26.2",
"sass-loader": "^8.0.2",
"stylelint": "^13.2.0",
"stylelint-config-recommended": "^3.0.0",
"stylelint-processor-html": "^1.0.0",
"stylelint-webpack-plugin": "^1.2.3",
"vue-template-compiler": "^2.6.11",
"vuepress": "^1.3.1"
}
}
Ответы (1 шт):
Автор решения: Dissarion
→ Ссылка
Проблема решена.
При поиске в интернете наткнулся на советы снести папку .git/hooks. Это помогло.
Пошагово:
- Устанавливаем пакеты для тестирования и
git hooks. - Сносим папку
.git/hooksв проекте. - Выполняем
git commit -m '...'. - Profit!