Отчет о покрытии для модульных тестов шутки не отображается с опцией --coverage

Мой проект основан на настройке приложения Create-react-app, а мой сценарий package.json для тестирования модульных тестов приведен ниже.

"scripts": {
    "test": "react-scripts test --coverage",
 }

or

 "test": "react-scripts test --coverage --collectCoverageFrom=src/**/*.{js,jsx}

Он выполняет тесты в папке Test, но не отображает отчет о покрытии. Можете ли вы помочь решить эту проблему. введите здесь описание изображения

Моя файловая структура выглядит следующим образом: src | --- Тест ---components> moduleA > package1 > package2> transaction.js, abcd.js... и т. д.

ProcessEvent.test.js

describe('ProcessEvent Component', () => {

    const expectedProps = {
        "event": {iconStatus:'active', desc:'abc'}
    }

    it('should render without error', () => {
        const component = <ProcessEvent {...expectedProps}/>
        const wrapper = component.find('.eventclass');
        expect(wrapper.length).toBe(1);
    });

    it('should receive valid props', () => {
        const component = shallow(<ProcessEvent {...expectedProps}/>);
        const wrapper = component.find('.eventclass');
        expect(component.props).toBeDefined();
    });

});

person Shrikant Dande    schedule 21.10.2019    source источник
comment
Можете ли вы опубликовать несколько примеров ваших тестов? Не могли бы вы попробовать запустить свои тесты напрямую с помощью шутки? то есть шутка --coverage   -  person dyouberg    schedule 21.10.2019
comment
Привет @dyouberg, чтобы использовать jest --coverage, мне придется выйти из настройки приложения create-react-app, чего я не хочу делать. Теперь пишет "шутка не может разобрать файл"   -  person Shrikant Dande    schedule 21.10.2019
comment
Хорошо, достаточно честно. Похоже, утилита покрытия работает корректно, не могли бы вы выложить примеры своих тестов? Может проблема именно в этом   -  person dyouberg    schedule 21.10.2019
comment
Я добавил свой компонент ProcessEvent.test.js. У меня есть аналогичные 3 других тестовых компонента.   -  person Shrikant Dande    schedule 21.10.2019


Ответы (1)


Использование параметра --watchAll=false приводит к отображению всех файлов.

Пример package.json

{
...
"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "coverage": "react-app-rewired test -- --coverage --watchAll=false",
    "eject": "react-scripts eject",
    "serve": "node server.js"
  },
...
}

Также ваш отчет о покрытии физически находится в /coverage/lcov-report. Открытие index.html, расположенного там, покажет вам отчет о покрытии в вашем браузере.

person Sujit Y. Kulkarni    schedule 11.06.2020
comment
Я тоже столкнулся с такой проблемой, используя --watchAll=false, распечатал результат на моей консоли, и сгенерированный отчет все еще отображался пустым ... вы знаете, что это будет вызывать? - person Logical Ogbonna; 09.07.2020