我编写了 e2e 测试。如果我以开放的柏树开始它们,它们就会一直过去。 但是如果我使用这个命令:cypress run --browser chrome --headed --no-exit --spec 'tests/e2e/specs/Samples.ts。 我收到许多不同的错误。这些错误并不相似。其中一些我不知道如何解决。 还有一个重要的事实:如果我打开开发人员工具并重新启动测试,所有测试都会通过。 Chrome 和 Firefox 也是如此。 我曾尝试使用不同版本的柏树,但无济于事。 我想错误类型在我的问题中并不重要,但我将解释其中之一。 第8步后,cypress报告页面已加载并重定向到登录页面。这可能意味着 带有令牌的 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);
});
});
})