在一个功能文件中运行多个场景在cypress中失败

在一个功能文件中运行多个场景在cypress中失败,cypress,cypress-cucumber-preprocessor,Cypress,Cypress Cucumber Preprocessor,对于Cypress Cumber项目,我有一个功能文件login.feature,它有两个场景大纲 有效登录 无效登录 当我运行login.feature文件时。有效登录场景有一个检查点来验证我是否在主页上。这需要时间来验证,在几秒钟内,它会移动到下一个场景,导致第一个场景失败 如果我一个接一个地运行它们,没有什么是失败的。Cypress使用自己的特性等待特定元素检查,然后移动到下一个元素。但在这里,它正在等待某个时刻,并逐渐进入下一个场景 login.feature Feature: Logi

对于Cypress Cumber项目,我有一个功能文件login.feature,它有两个场景大纲

  • 有效登录
  • 无效登录
  • 当我运行login.feature文件时。有效登录场景有一个检查点来验证我是否在主页上。这需要时间来验证,在几秒钟内,它会移动到下一个场景,导致第一个场景失败

    如果我一个接一个地运行它们,没有什么是失败的。Cypress使用自己的特性等待特定元素检查,然后移动到下一个元素。但在这里,它正在等待某个时刻,并逐渐进入下一个场景

    login.feature

    Feature: Login to Application
    
    As a valid user I want to log in to the Application
    
    @login
    Scenario Outline: Valid Login
        Given user open the login Page
        When user enter a username "<userName>"
        And user enter a password "<password>"
        And user click the sign-in button
        Then user should be able to login
    
    Examples:
    |   userName       | password    |
    |     abc          | ########### |
    
    
    @login
    Scenario Outline: Invalid Login
        Given user open the login Page
        When user enter a username "<userName>"
        And user enter a password "<password>"
        And user click the sign-in button
        Then error should displayed as "<error_message>"
    
    Examples:
    | userName   | password       | error_message     |
    | admin      | sd444-fdf-ffr  | Unable to sign in |
    
    登录页面.js

    class loginPage {
        static visitLoginPage() {
            cy.visit('/');
            cy.url().should('include', 'login');
        }
    
        static fillUsername(username) {
            cy.get('#abc').type(username);
        }
    
        static fillPassword(password) {
            cy.get('#def').type(password);
        }
    
        static submitLoginDetails() {
            cy.get('[type="submit"]').click();
        }
    
        static checkLoginSuccess() {
            cy.get('#large-device').should('be.visible');
        }
    
        static checkErrorMessage(error_message) {
            cy.get('#form1').should('contain.text', error_message);
        }
    
        static loginWithValidCredentials(username, password) {
            cy.visit('/');
            cy.url().should('include', 'login')
            cy.get('#abc').type(username);
            cy.get('#def').type(password);
            cy.get('[type="submit"]').click();
        }
    }
    
    export default loginPage
    

    让我知道更多的信息。我对柏树黄瓜不熟悉。请帮帮我。

    我不确定cucumber sintax的情况,但为了我的测试,我把每个案例都放在了不同的文件中,正是出于这个原因。也许这种方法适用于你.我不确定cucumber sintax的情况.但为了我的测试,我把每一个案例都放在不同的文件中。可能这种方法适用于您。
    class loginPage {
        static visitLoginPage() {
            cy.visit('/');
            cy.url().should('include', 'login');
        }
    
        static fillUsername(username) {
            cy.get('#abc').type(username);
        }
    
        static fillPassword(password) {
            cy.get('#def').type(password);
        }
    
        static submitLoginDetails() {
            cy.get('[type="submit"]').click();
        }
    
        static checkLoginSuccess() {
            cy.get('#large-device').should('be.visible');
        }
    
        static checkErrorMessage(error_message) {
            cy.get('#form1').should('contain.text', error_message);
        }
    
        static loginWithValidCredentials(username, password) {
            cy.visit('/');
            cy.url().should('include', 'login')
            cy.get('#abc').type(username);
            cy.get('#def').type(password);
            cy.get('[type="submit"]').click();
        }
    }
    
    export default loginPage