【问题标题】:Calling Cypress tests from another Cypress test file从另一个赛普拉斯测试文件调用赛普拉斯测试
【发布时间】:2023-02-14 18:44:58
【问题描述】:

我正在编写一些 Cypress 测试来测试帐户删除功能。由于测试每次运行时都会删除一个帐户,因此我首先要创建一个帐户。我已经有一个用于创建帐户的测试文件。

describe("Create Email User", () => {
    beforeEach(() => {
        cy.restoreLocalStorage();
    });

    afterEach(() => {
        cy.saveLocalStorage();
    });

    it("Clicks to Create New User", () => {
        cy.visit("/signin");
        cy.get('[data-cy="login-main-sign-up-link"]').click();
        cy.get('[data-cy="sign-in-content-top-header-text"]').should(
            "contain",
            "Create your account"
        );
    });

    it("Enters Form Data", () => {
        cy.get('[data-cy="sign-up-name-first-name-input"]').type("John");
        cy.get('[data-cy="sign-up-name-last-name-input"]').type("Smith");
        const newEmail = createEmail();
        cy.get('[data-cy="sign-up-name-email-input"]').type(newEmail);
        cy.get('[data-cy="sign-up-name-password-input"]').type("test123!");
        cy.get('[data-cy="sign-up-name-next-button"]').click();
        cy.get('[data-cy="sign-up-phone-header-text"]').should(
            "contain",
            "What's your phone number?"
        );
    });

    it("Reloads the page and clicks next button", () => {
        cy.reload();
        cy.get('[data-cy="sign-up-onboarding-intro-header-text"]').should(
            "contain",
            "Great! Let's set up your account"
        );
        cy.get('[data-cy="sign-up-onboarding-next-button"]').click();
        cy.get('[data-cy="sign-up-role-wizard-header-text"]').should(
            "contain",
            "What role best describes you?"
        );
    });

    it("Selects Family/Friend role and clicks next button", () => {
        cy.get('[data-cy="sign-up-role-wizard-Family/Friend"]').click();
        cy.get('[data-cy="sign-up-role-wizard-next-buton"]').click();
        cy.get('[data-cy="sign-up-base-header-text"]').should(
            "contain",
            "Do you know which base your trainee is going to?"
        );
    });

    it("Selects No button and clicks next button", () => {
        cy.get('[data-cy="sign-up-base-no-button"]').click();
        cy.get('[data-cy="sign-up-base-next-button"]').click();
    });
});

现在我正在进行帐户删除测试。我想先调用创建帐户测试,以便确定有一个帐户要删除。

如何调用一个测试文件从另一个测试文件运行?

【问题讨论】:

  • 只是作为一个想法,如果有一个单独的函数来创建一个帐户(所以只是一个普通的 JavaScript 函数),然后在删除帐户测试中调用,有点像“创建测试数据”,这不是更好也更容易吗.

标签: javascript testing automated-tests cypress


【解决方案1】:

尝试在 cypress 中使用自定义命令,以便登录功能也可以用于其他测试

参考https://docs.cypress.io/api/cypress-api/custom-commands#Syntax

【讨论】:

    【解决方案2】:

    它看起来像是测试设置和清理的过程,并且在很大程度上取决于您想要实现的目标。

    你肯定想要:

    • 将其移动到 support/commands.js 中的自定义 Cypress 命令中
    • 创建一个可以在before()beforeEach() 中调用的实用函数,并将它们放在最适合项目的位置

    【讨论】:

      【解决方案3】:

      我不知道它是否有帮助。我找到了这个tutorial

      所以你所要做的就是在 e2e 文件夹中创建一个文件(例如all.cy.js

      并导入您要运行的每个规范。

      import './spec1.cy'
      import './spec2.cy'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-20
        • 2020-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-06
        • 2021-10-14
        相关资源
        最近更新 更多