gpt4 book ai didi

cypress-cucumber-preprocessor - Cypress + Cucumber - 相同的步骤定义

转载 作者:行者123 更新时间:2023-12-02 16:13:36 25 4
gpt4 key购买 nike

假设我有 Feature1.feature 和 Feature2.feature 文件。首先我有步骤:

Scenario: Test scenario1
Given I Open the app
When I Click on Tab1

在第二个文件中我有:

Scenario: Test scenario2
Given I Open the app
When I Click on Tab2

step1.js文件中step_definitions文件夹下:

Given("I open the app", () => {
cy.visit("/home");
});

When("I Click on Tab1", () => {
cy.get('[title="Tab1"]'.click();
});

在 step_definitions 文件夹下,我们有多个 js 文件(由每个测试用例分隔)。那么对于第二种情况,我是否需要在 step2.js 中再次定义 Open app 步骤? :

Given("I open the app", () => {
cy.visit("/home");
});

或者它在 steps_definition 下的所有文件中全局查找?那么我只需要开始:

When("I Click on Tab2", () => {
cy.get('[title="Tab2"]'.click();
});

但是如果多个用户正在处理测试用例并且他们不小心在不同的文件中定义了相同的步骤,例如

在一个文件中

Given("I open the app", () => {
cy.visit("/home");
});

在其他文件中

Given("I open the app", () => {
cy.visit("/news");
});

正如我所读,每个场景都应该是独立的。但是如果每个场景都有相同的步骤呢?我们只需要在一个文件中定义一次。但如果其他人正在处理该文件,它可能会破坏我的场景。

最佳答案

如果多个场景有两个步骤,您应该使用通用步骤:

可重复使用的步骤定义我们还有一种方法可以创建可重用的步骤定义。将它们放在 cypress/integration/common/

示例:cypress/integration/common/i_see_string_in_the_title.js

import { Then } from "cypress-cucumber-preprocessor/steps";

Then(`I see {string} in the title`, (title) => {
cy.title().should('include', title)
})

取自https://www.npmjs.com/package/cypress-cucumber-preprocessor

关于cypress-cucumber-preprocessor - Cypress + Cucumber - 相同的步骤定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67380480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com