Cypress - как иметь один код для каждого теста - PullRequest
0 голосов
/ 02 декабря 2018

Есть ли в Cypress какие-то пакеты, как я могу иметь только один код для каждого тестового примера, который я создаю?

Например: у меня один и тот же процесс нажатия на мой веб-сайт, но мне нужно иметькак 20 тестовых случаев.Этот веб-сайт все еще обновляется, поэтому, если произойдет смена сайта, я не хочу вносить изменения в код для каждого теста, но только в одном месте.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 03 декабря 2018

Вот пример общего login, который я добавил в файл commands.js.В моих требованиях к тестам для каждого набора тестов мне нужно иметь функцию login() для вызова.Здесь я вызываю login () внутри тега before({}), который запускается один раз перед всеми тестами в блоке.Полагаю, аналогичным образом вы можете добавить click through my website, но нужно разобраться в потоке вашей программы более подробно.

/gration / examples

Набор тестов и тестов

describe('Some name of the test suite', function(){
  before('Before the test clear previous Cookies', () => {
    cy.wait(2000)
    cy.clearCookies()
    cy.login(Cypress.env('username'), Cypress.env('password'))

  });

  /* Test case 1*/

  it('Name of first test case', function(){
     // test steps to add 
   })      

  /* Test case 2*/

  it('Name of second test case', function () {
     // test steps to add 
   })

})

/ support / commands.js file

Cypress.Commands.add('login', (username, password) => {
   cy.visit('/')
   cy.get("#Loginuser").type(username)
   cy.get("#Loginpass").type(password, {log:false})
   cy.get("button[type='submit']").contains("Login").click()
});
...