получить общее количество тестов для выполнения из файла spe c - PullRequest
2 голосов
/ 08 января 2020

Я новичок в сфере тестирования транспортиров. Я хотел бы знать, есть ли способ dry запустить конфигурацию транспортира и вернуть общее количество тестов, которые должны быть выполнены в файле spe c. (фактическое выполнение контрольного примера теперь не произойдет)

В основном, я хотел бы знать количество описаний и контрольных примеров, доступных из файла * spe c. js. Подскажите пожалуйста несколько идей.

1 Ответ

1 голос
/ 08 января 2020

Мне удалось добиться этого с помощью пользовательского флага командной строки, установки пакета jasmin-fail-fast и неудачного первого теста при прохождении этого флага. Но обратите внимание, что всегда должен быть 1 отказ.

Подробные шаги

  1. Передача пользовательского флага в качестве аргумента командной строки при запуске транспортира
  2. В проверке onPrepare, если этот флаг найден
  3. Если это так, выполните следующие 3 шага:
  4. включите пакет jasmine-fail-fast (вам нужно скачать с npm i jasmine-fail-fast --save
  5. Добавить пользовательский репортер, который регистрирует только количество тестов в ловушке жизненного цикла jasmineStarted
  6. Добавить beforeAll с пользовательским сообщением об ошибке

Project структура Обратите внимание, что приложения 1. js и приложения 2. js идентичны, поэтому в общей сложности существует 8 спецификаций.

enter image description here

Используемая команда

C:\ProtractorProjects\jasmine-test-count>node_modules\.bin\protractor conf.js --params.countSpecs

приложение 1. js

describe("suite 1", function(){

    it("spec 1", function(){
        expect(true).toBe(true);
    });

    it("spec 2", function(){
        expect(true).toBe(false);
    })

    xit("spec 3", function(){
        expect(true).toBe(false);
    })
    xit("spec 4", function(){
        expect(true).toBe(false);
    })
});

конф. js

exports.config = {
    framework: 'jasmine',
    specs: "app.*.js",
    onPrepare: function () {

        if (browser.params.countSpecs) {
            //Add jasmine fail fast package
            const failFast = require('jasmine-fail-fast');
            jasmine.getEnv().addReporter(failFast.init());

            //Add custom reporter which only counts 
            jasmine.getEnv().addReporter({
                jasmineStarted: function (suiteInfo) {
                    console.log(`Due to execute #${suiteInfo.totalSpecsDefined} specs in total`);
                }
            });

            beforeAll(function () {
                fail("Failing because only a count was required");
            })
        }
    }
}

Выход enter image description here

...