当执行一个测试用例并移动到第二个测试用例时,这次测试用例从登录页面开始,而不是从现有页面开始

Shu*_*hav 0 cypress

describe('CMS Department', () => {

    beforeEach(() => {
        // Navigate to the desired URL before each test
        cy.visit('https://whitecode.biz/staging/cms/admin');

        Cypress.on('uncaught:exception', (err, runnable) => {
            // returning false here prevents Cypress from
            // failing the test
            return false
        })
      });
      
    it('Add_Dept_Possitive_Scenario', () => {

        cy.fixture('cmslogin').then((data) => {

            const login = new Department();
            login.setEmail(data.email);
            login.setPassword(data.password);
            login.clickSignIn();

        })

        const dept = new Department();
        dept.Open_Dept();
        dept.Add_New_Dept();
        dept.Breadcrum_Image();
        dept.Faculty_Select("1");
        dept.Department_Name("Re-department")
        dept.Show_On_Website();
        dept.Add_Department();
    });

    it('Edit_Department', () => {

        cy.fixture('cmslogin').then((data) => {

            const login = new Department();
            login.setEmail(data.email);
            login.setPassword(data.password);
            login.clickSignIn();

        })

        const dept = new Department();
        dept.Open_Dept();
        dept.Edit_Record();

    })
Run Code Online (Sandbox Code Playgroud)

在第一个测试执行后,第二个测试用例不会从现有页面开始,而是从登录页面再次开始。我预计第二个测试用例从现有页面开始。

Woo*_*oof 5

已经给出的答案不是很有帮助,只需摇动手指并告诉您不能做什么。

实际上,您可以使用该cy.session()命令来处理登录状态。此命令用于在测试ref之间重新创建一致的浏览器上下文

您的代码的用法类似于

describe('CMS Department', () => {

  beforeEach(() => {
    cy.visit('https://whitecode.biz/staging/cms/admin');

    cy.session(() => {
      cy.fixture('cmslogin').then((data) => {
        const login = new Department();
        login.setEmail(data.email);
        login.setPassword(data.password);
        login.clickSignIn();
      })
    })
  });
      
  it('Add_Dept_Possitive_Scenario', () => {
    const dept = new Department();
    ...
  });

  it('Edit_Department', () => {
    const dept = new Department();
    ...
  })
Run Code Online (Sandbox Code Playgroud)

您还可以从此博客“编写依赖于其他测试的测试”获得对此问题的积极意见。

Gleb Bahmutov 是 Cypress 的主要架构师之一,并且仍在开发新的实用模式。

事实上,当您有 Cypress 问题需要解决时,我什至建议忽略此论坛中给出的 90% 的意见(包括我自己的意见)并首先搜索 Gleb 的博客。


归档时间:

查看次数:

74 次

最近记录:

2 年,5 月 前