cucumber - 我可以在黄瓜的每个功能文件中运行一次之前的钩子吗?
问题描述
我有一堆功能文件,每个文件都有一堆场景。根据具体情况,前 2 或 3 个步骤对于每个场景都是相同的。
- 登录
- 导航到 X 页面
所以在一个 .feature 文件中,我有 10 个场景,我正在运行 20 个步骤,我可以只运行一次并执行所有测试。
用黄瓜可以吗?使用后台为每个场景执行步骤,我想为每个功能文件执行此操作。我所有场景的上下文。
顺便说一句,我正在使用 cypress-cucumber-preprocessor?但我认为是一样的。
解决方案
您是否尝试过使用 before/after ?就我而言,我想跳过在每个功能之前添加登录/注销步骤的部分。因此,我在 support/stepdefinitions/global.js 中执行了以下操作
before(() => {
cy.log(
"This will run once before all tests, you can use this to for example start up your server, if that's your thing"
);
cy.visit(Cypress.env("url") + "/login");
cy.fixture("login").then((inputdata) => {
cy.log("Login to application");
LoginPage.changeLanguage("en");
LoginPage.login(inputdata.username, inputdata.password, inputdata.pin);
});
cy.on("uncaught:exception", (err) => {
// expect(err.message).to.include('Ignoring error for now');
return false;
});
});
after(() => {
cy.log("Logout from application");
HomePage.clickUserDropdown();
HomePage.clickLogout();
});
推荐阅读
- java - 如何将 4.5GB 文件上传到 Oracle 12c 数据库?
- google-sheets - 更新数组公式语法以更改参考日期
- c# - ASP.NET Web Api 路由在 C# 中不起作用
- google-drive-api - 使用 Google Drive API 访问在 Google Drive 上手动添加的文件
- python-3.x - 从 .csv 创建 dict,其中一列中的重复行作为相邻列中键的值
- java - stopService() 方法不会停止服务
- python - 尝试记录烧瓶 restplus 请求正文时引发的属性错误?
- python - 使用 boto3 在 S3 存储桶中选择倒数第二个文件
- postgresql - OrientDB ETL - postgres - “由于与恢复冲突而取消语句”
- docker - 验证 docker 镜像的内容