Файлы js Istanbul Cover управляются электронным тестом на шутку или мокко - PullRequest
0 голосов
/ 23 октября 2019

У меня есть базовый электронный тест приложения:

const Application = require('spectron').Application;
const electronPath = require('electron');
const path = require('path');

describe.only('Basic Electron App Test', () => {

    var context;
    jest.setTimeout(10000);

    beforeEach( () => {
        context = {};
        context.app = new Application({
            path: electronPath,
            args: [path.join(__dirname, '..')]
        });

        return context.app.start();
    });

    afterEach( () => {
        if(context.app && context.app.isRunning()) {
            return context.app.stop();
        }
    })

    test("Button click changes header text", () => {
        context.app.client.element('button').click();
        return context.app.client.element('h1').getText().then((text) => {
            expect(text).toEqual("Clicked");
        }); 
    });
});

В тесте я нажимаю кнопку и проверяю, изменяется ли текст. HTML-файл, который определяет разметку, загружает JS-файл, который содержит функцию, которая запускается при нажатии кнопки. Если я запускаю jest --coverage, этот файл javascript не будет покрыт. Как сделать так, чтобы Jest генерировал отчет и для тех файлов, которые вызываются в электронном приложении, а не с явным оператором require(...) в тестовых файлах.

Jest использует встроенный в него инструмент istanbul для покрытия кода. Если я использую nyc в тестах mocha, как я могу охватить js файлы в электронном контексте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...