Automation 在Cypress的测试中如何调用另一个测试

Automation 在Cypress的测试中如何调用另一个测试,automation,cypress,Automation,Cypress,我在使用Cypress创建测试时遇到问题 我正在创建一个测试,要求用户登录他的帐户才能运行该测试。 我有另一个测试来测试登录功能。 如何运行测试(创建帐户),这样我就不需要像示例中那样在每个测试开始时先登录代码 在运行测试之前,我总是从登录脚本开始。正如你看到的,我有每个测试的用户名和密码。 我希望能够先运行登录,然后再运行其他 cy.visit('https://devcloudarena.devtest.fastighet.vitec.se/test/mina-sidor/logga-in'

我在使用Cypress创建测试时遇到问题 我正在创建一个测试,要求用户登录他的帐户才能运行该测试。 我有另一个测试来测试登录功能。 如何运行测试(创建帐户),这样我就不需要像示例中那样在每个测试开始时先登录代码

在运行测试之前,我总是从登录脚本开始。正如你看到的,我有每个测试的用户名和密码。 我希望能够先运行登录,然后再运行其他

cy.visit('https://devcloudarena.devtest.fastighet.vitec.se/test/mina-sidor/logga-in')
cy.contains('Mina sidor').click()
cy.contains('Logga in').click()
cy.get('#UserId').click();
cy.get('#UserId').type('19380412-6526');
cy.get('#Password').click();
cy.get('#Password').type('Vitec.Test20');
cy.get('.ml-auto > .button').click();
cy.wait('@getActivities').then((xhr) => { });

cy.url().should('contains', 'https://devcloudarena.devtest.fastighet.vitec.se/test/mina-sidor');
cy.get('.d-block .col-9').click();
cy.url().should('contains', 'https://devcloudarena.devtest.fastighet.vitec.se/test/mina-sidor/min-profil');
cy.get('.object-description-cc > a').click();
cy.url().should('contains', 'https://devcloudarena.devtest.fastighet.vitec.se/test/mina-sidor/uppdatera-kontaktuppgifter');
cy.get('.form-group > .button').click();
cy.get('#RegisterForm').submit();
cy.url().should('contains', 'https://devcloudarena.devtest.fastighet.vitec.se/test/mina-sidor');

您可以将其作为一个,并且它将通过一个简单的命令调用在每个测试中可重用。

要添加到Rosen Mihaylov的答案中,用户可以将登录脚本转换为一个
自定义命令
,还可以使用
钩子
通过调用特定的自定义命令来实现测试的先决条件

与support/command.js相关的自定义命令

Cypress.Commands.add('login', (email, pw) => {})
在等级库文件中使用自定义命令

beforeEach(() => {
    cy.login()
})

您希望重用代码的哪一部分,可以在问题中对其进行更新吗?