Транспортир - Как использовать теги на Жасмин для тестирования e2e - PullRequest
1 голос
/ 26 марта 2020

У меня возникли некоторые проблемы, когда я застрял в том, что делать, чтобы иметь возможность пометить различные тесты, которые я хочу выполнить.

Тесты, которые я хочу, требуются только в конце, где я хочу чтобы иметь возможность пометить, какой платеж я хотел бы оплатить, это Mastercard, Visa или Amex. У меня есть тест, который выполняет страницу с подробностями, такую ​​как запись информации о пользователях, выбор груза, но в конце у меня есть несколько вариантов, которые я хотел бы проверить в ожидании того, что я хочу проверить:

paymentPage. js

describe('Payment page', function () {
    paymentPage = new PaymentPage();

    // The details page is accessible by the specified URL
    it(`Credit Card - Has a form that can receive user data`, async function () {

        await paymentPage.creditCardPayment();

    });


     //Visa
    it('Enets payment', async function () {
            //TODO

    });

     //Amex
    it('Enets payment', async function () {
            //TODO

    });
});

Как вы можете видеть, есть 3 варианта, которые я хотел бы проверить, поэтому всякий раз, когда я выполняю et c «protractor e2e run mastercard», это означает, что он должен выполнить первый тестовый пример. , если я выберу визу, сделайте второй тестовый пример и пропустите остальные.

Однако у меня есть пара тестов, которые выполняются до перехода на страницу оплаты, но все они должны делать то же самое для каждого платежа, так что Это означает, что все тестовые случаи перед платежом должны каждый раз делать одно и то же (так что я думаю, нам просто нужно сделать теги на платеже, чтобы скрипт мог знать, какой платеж выбрать)?

Как я могу сделать вроде тегов или может у кого-то есть другое решение, которое лучше? Чтобы я мог выбрать, какого провайдера платежей я хочу запустить

edit:

exports.config = {

    capabilities: {
        browserName: 'chrome',
        chromeOptions: {
            args: [
                'incognito', 'disable-extensions', 'start-maximized', 'disable-infobars', '--window-size=1920,1080'
            ]
        },
        loggingPrefs: { browser: 'ALL' },
        platform: 'ANY',
        version: ''
    },


    specs: [
        'pagesDesktop/testPage.js',
        'pagesDesktop/paymentPage.js'
    ],

    jasmineNodeOpts: {
        reporter: "mochawesome",
        defaultTimeoutInterval: 60000
    },

    SELENIUM_PROMISE_MANAGER: false,

    framework: 'jasmine',

    params: {
        cardType: {
        }
    }

};

describe('Payment page', function () {
    paymentPage = new PaymentPage();

    console.log(browser.params.cardType);

    if (browser.params.cardType === "mastercard") {
        // The details page is accessible by the specified URL
        it(`Credit Card - Has a form that can receive user data`, async function () {
            await paymentPage.creditCardPayment();
        });
    }

1 Ответ

1 голос
/ 26 марта 2020

просто добавьте if / else logi c

describe('Payment page', function () {
    paymentPage = new PaymentPage();

    // The details page is accessible by the specified URL
    it(`Credit Card - Has a form that can receive user data`, async function () {

        await paymentPage.creditCardPayment();

    });


  if (browser.params.cardType === 'visa') {
    it('Enets payment', async function () {
            //TODO

    });
  } else if (browser.params.cardType === 'amex') {
     //Amex
    it('Enets payment', async function () {
            //TODO

    });
  }
});

Здесь вы можете прочитать, как параметризовать teste Как использовать аргументы командной строки в Angularjs Protractor? , или здесь https://medium.com/@nicklee1 / тестирование вашего транспортира-данные-управляемые-e3c9e2a5e4e7

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