gpt4 book ai didi

Cypress 测试通过 `cypress open` ,但失败 `cypress run`

转载 作者:行者123 更新时间:2023-12-05 06:53:05 26 4
gpt4 key购买 nike

我编写了端到端测试。如果我在打开柏树的情况下启动它们,它们就会一直通过。但是如果我使用这个命令:cypress run --browser chrome --headed --no-exit --spec 'tests/e2e/specs/Samples.ts。我收到许多不同的错误。这些错误并不相似。其中一些我不知道如何修复。重要的是:如果我打开开发人员工具并重新启动测试,所有测试都会通过。 Chrome 和 Firefox 也是如此。我曾尝试使用不同版本的柏树,但无济于事。我想错误类型在我的问题中并不重要,但我将解释其中一种。 enter image description here第 8 步后,cypress 报告页面已加载并重定向到登录页面。这可能意味着带有 token 的 localStorage 被意外清除。如果我打开开发人员工具并重新启动测试,所有测试都会通过。测试非常简单。另外,我使用了两个自定义函数。

describe('Samples', () => {
beforeEach(() => {
cy.login();
});

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

context('Create sample', () => {
const SAMPLE_DATA = {
name: 'Test',
description: 'Description',
compound: 'Compound1; Compound1',
};

afterEach(() => {
cy.get('[data-test-id=btn-create]').click();
cy.location('hash').should('match', /\/samples\/\d+$/);
// archive
cy.get('[data-test-id=btn-more-menu]').click();
cy.get('[data-test-id=btn-archive]').click();
cy.get('[data-test-id=btn-restore]');
});

it('should create sample without device', () => {
cy.visit(urlPages.app.SAMPLES);
cy.get('[data-test-id=btn-show-create-sample-modal]').click();
cy.get('[data-test-id=input-name]').type(SAMPLE_DATA.name);
cy.get('[data-test-id=input-description]').type(SAMPLE_DATA.description);
cy.get('[data-test-id=input-compounds]').type(SAMPLE_DATA.compound);
});
});
})

最佳答案

不确定这是否有帮助,但根据 Cypress 最佳实践(https://docs.cypress.io/guides/references/best-practices#Using-after-or-afterEach-hooks),afterEach 应该谨慎使用,您应该在 beforeEach 中执行任何必要的清理,这样您就可以确保在每次测试运行之前都有一个干净的环境。

也许消除 afterEach 并将 beforeEach 更改为以下内容会有所帮助:

 beforeEach(() => {
cy.deleteAccount();
cy.login();
});

我还认为,如果第二个 afterEach 只是您在每次测试结束时显式调用的函数,它可能会更可靠。

关于 Cypress 测试通过 `cypress open` ,但失败 `cypress run`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65845635/

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