Cypress 不支持自定义命令

Noe*_*lin 0 cypress

我在 support/header.js 下创建一个新文件以重复使用以检查标头我还将其导入到 e2e.js

header.js

Cypress.Commands.add('checkHeader',() => {

    //* FAVICON
    it('Check Favicon 1', () => {
        cy.get('head link[type="image/png"]') 
          .should('have.attr', 'href') 
          .and('eq', '/favicon-32x32.png?v=26696447bf4055aecabfb5be2539b037');
    });
});
Run Code Online (Sandbox Code Playgroud)

我将其导入到测试 e2e/test-header.cy.js

describe('Header', () => {

    //* VISIT THE WEBPAGE
    it('Visit the website', () => {
        cy.visit(Cypress.env('baseUrl'));
        
    });

    it('Check Header', () => {
        cy.checkHeader();
    });
});
Run Code Online (Sandbox Code Playgroud)

当我运行测试时它什么也没做。

测试结果

我怎样才能解决这个问题?

Cat*_*mes 5

您不能将 an 放入it()命令中。命令是构建块,而it()不是相反。

使用该结构,您试图构建嵌套,it()这也是不可能的。

it('Check Header', () => {

   //cy.checkHeader();
   it('Check Favicon 1', () => {
     cy.get(...

})
Run Code Online (Sandbox Code Playgroud)

只要把那个内部的东西去掉it(),它就会完美地工作。

Cypress.Commands.add('checkHeader',() => {
   cy.log('Check Favicon 1')
   cy.get('head link...
});

it('Check Header', () => {
  cy.checkHeader();
})
Run Code Online (Sandbox Code Playgroud)