如何在终端中使用TAGS运行Cypress BDD功能,而不关闭每个功能的测试/浏览器



我的项目中有一些功能文件,我只需要使用Terminal从功能文件中执行特定的cucumber标记(@Regression)。我可以使用标记运行功能文件。但是对于每个要素文件,test/Browser窗口都会关闭和打开。在这种情况下,我必须在所有功能文件中编写一个登录脚本来避免这个问题。

期望:Test/Browser不应该每次都关闭,登录应该只在脚本执行开始时发生。

有人能帮我克服这个问题吗?

解释

您必须分别为Feature中的每个Scenario运行登录,这是预期的行为,因为每个测试本身应该尽可能独立。

为了不必一次又一次地为每个场景添加登录步骤,Cucumber中有所谓的Backgrounds。背景描述了作为功能中所有场景的先决条件而应用的步骤。

背景的行为与正常场景类似,因此例如,您可以在每个功能中创建一个背景,并为登录执行Given步骤,以便在每个场景之前自动执行。

示例

每个功能都将接收以下背景,然后在每个场景之前自动执行一次:

@SomeTag
Feature: Some Feature
Background: User is logged in
Given the user is logged in
Scenario: Some first scenario
Given ...
When ...
Then ...
Scenario: Some second scenario
Given ...
When ...
Then ...

步骤定义的实现与正常场景的步骤相同,并且可以在所有功能中重复使用:

import { defineStep, Given } from 'cypress-cucumber-preprocessor/steps';
Given('the user is logged in', () => {
// logic for login
});
// or more generic using defineStep
defineStep('the user is logged in', () => {
// logic for login 
});

关于登录的逻辑,通常适合使用Cypress自定义命令(例如Azure AD的登录(

相关内容

  • 没有找到相关文章

最新更新