Как обрабатывать ошибки глобально в TestCafe - PullRequest
0 голосов
/ 31 октября 2018

Я построил объектную модель страницы для своего проекта TestCafe в машинописном тексте. Я нахожу повторяющийся характер try / catch в каждом методе излишним. Я всегда хочу, чтобы ошибки регистрировались с помощью winston.

Есть ли предлагаемый способ обработки ошибок в глобальном масштабе? Вот пример страницы:

import { Selector, t } from "testcafe";
import logger from 'logger';

export default class DocumentQueryPage {
    path: string;
    queryDocumentsButton: Selector;

    constructor() {
        this.path = "#/records/query";

        this.queryDocumentsButton = Selector('button.btn-request-records');
    }

    async go(): Promise<void> {
        try {
            await t.navigateTo(this.path)
        }
        catch (err) {
            logger.error(err)
        }
    }

    async selectFirstQuery(): Promise<void> {
        try {
            await t.navigateTo(this.path)
        }
        catch (err) {
            logger.error(err)
        }
    }
}

1 Ответ

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

Советую не использовать блок try / catch со встроенными действиями testcafe. Вы можете реализовать свой собственный репортер или изменить существующий. Пожалуйста, обратитесь к следующей статье: http://devexpress.github.io/testcafe/documentation/extending-testcafe/reporter-plugin/ Также может быть полезно узнать, как работают существующие репортеры. Посмотрите, как по умолчанию testcafe-reporter отображает ошибки: https://github.com/DevExpress/testcafe-reporter-spec/blob/fac1fa6d2bfae5e51cd076f990abb6d889ee9747/src/index.js#L87 Вы можете изменить существующий репортер, добавив свою собственную логику обработки ошибок в метод reportTestDone.

...