Покрытие кода, игнорирующее файлы компонентов VueJS, несмотря на успешное выполнение тестов для этих компонентов - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь получить результаты покрытия кода для моего веб-приложения, встроенного в 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)"
        ]
    }

Есть ли более элегантный способ достичь этого, кроме этого хакерского решения?

Большое спасибо!

1 Ответ

2 голосов
/ 08 мая 2019

Эта проблема отслеживается на WEB-38769 , пожалуйста, проголосуйте за ее получение, чтобы получить уведомление о любом прогрессе

...