Я пытаюсь получить результаты покрытия кода для моего веб-приложения, встроенного в VueJS. По-видимому, если я создаю компонент, а затем пишу тест (тест моментального снимка) для этого компонента, IDE (WebStorm) игнорирует этот файл.
Я провел некоторое исследование и обнаружил, что в коде покрытия перечислены только файлы, которые содержат исполняемый JavaScript. В моем случае, если я создаю компонент и просто возвращаюсь из компонента следующим образом:
<template>
...
</template>
<script>
export default {
name: 'CustomButton',
props: ['someText'],
data() {
return {};
},
};
</script>
будет работать и в IDE будет отображаться 100% lines covered
.
Если я уберу data
<template>
...
</template>
<script>
export default {
name: 'CustomButton',
props: ['someText'],
};
</script>
, тогда тест игнорируется покрытием, даже если тест моментального снимка завершился успешно.
Как уже упоминалось, я использую Jest для запуска всех своих тестов, используя следующую конфигурацию:
"jest": {
"setupFiles": [
"jest-localstorage-mock"
],
"moduleFileExtensions": [
"js",
"jsx",
"json",
"vue"
],
"transform": {
"^.+\\.vue$": "vue-jest",
".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
"^.+\\.jsx?$": "babel-jest"
},
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"snapshotSerializers": [
"jest-serializer-vue"
],
"testMatch": [
"**/tests/unit/**/*.test.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"
],
"collectCoverageFrom": [
"**/src/**"
],
"testURL": "http://localhost/",
"transformIgnorePatterns": [
"node_modules/(?!vue-spinner|vue-quill-editor)"
]
}
Есть ли более элегантный способ достичь этого, кроме этого хакерского решения?
Большое спасибо!