Получить все тесты не удалось от Мокко - PullRequest
0 голосов
/ 08 ноября 2018

Итак, у меня есть около 600 тестов, выполненных с помощью Mocha, и теперь мне нужно автоматически запустить все из них и получить все ошибки и количество успешных попыток, чтобы отправить эту информацию на сервер мониторинга.

Я могу создать сценарий bash, который запускает тесты и записывает журнал Mocha в файл, затем анализирует этот файл журнала и получает данные об успехах и сбоях (например, по grep), но это слишком грязное решение.

Я бы предпочел выполнить тесты программно и получить от Mocha что-то вроде сообщений об ошибках и массива тестов успеха, чтобы обойти это, но я не смог найти никаких документов по этому поводу.

Итак, как решить эту проблему?

1 Ответ

0 голосов
/ 08 ноября 2018

Создайте файл, скажем, intercept-failures.js со следующим содержимым:

const failures = [];
const successes = [];

afterEach(function () {
    const title = this.currentTest.title;
    const state = this.currentTest.state;
    if (state === "passed") {
        successes.push(title)
    } else if (state === "failed") {
        failures.push(title)
    }
});

after(function () {
    console.log("failures", failures);
    console.log("successes", successes);
});

Добавьте флаг --file intercept-failures.js к вашему вызову mocha (например, mocha --file intercept-failures.js test/**)

Хук afterEach накапливает все результаты теста, а затем вы можете что-то с ними сделать в хуке after.Флаг --file просто гарантирует, что хуки добавляются во все тестовые наборы.

...