赛普拉斯:使用标签过滤测试

时间:2020-08-26 19:51:55

标签: node.js cypress

我有100个测试用例,其中一些属于冒烟,回归或两者兼有。赛普拉斯本身不提供任何标记机制,我该如何过滤测试它们?

我尝试过

  1. https://www.npmjs.com/package/cypress-select-tests
  2. https://www.npmjs.com/package/cucumber-tag-expressions

但是他们都没有为我工作。如果有人有这些软件包的工作示例,请进行指导。

还有其他方法可以过滤测试吗?

1 个答案:

答案 0 :(得分:2)

创建一个名为test-filter.ts的模块,该模块基本上根据提供的标签过滤您的赛普拉斯测试。

/// <reference types="Cypress" />

const TestFilter = (definedTags: string[], runTest: Function) => {
  if (Cypress.env('TEST_TAGS')) {
    const tags = Cypress.env('TEST_TAGS').split(',');
    const isFound = definedTags.some(definedTag => tags.includes(definedTag));

    if (isFound) {
      runTest();
    }
  }
};

export default TestFilter;

将以上文件导入您的规范文件:

/// <reference types="Cypress" />

import TestFilter from '../../test-filter';

TestFilter(['smoke', 'test'], () => {
  describe('Taboola', () => {
    beforeEach(() => {
      cy.viewport('macbook-13');
    });

    it('should exist on an article page', () => {
      cy.visit(Cypress.env('TEST_ARTICLE'));
      cy.waitForAdRequest();

      cy.get('div[data-mode="Feeder"]').should('exist');
      cy.get('div[data-mode="alternating-thumbnails-a"]').should('exist');
    });
  });
});

执行测试的方式为:

CYPRESS_TEST_TAGS=smoke npm run cy:run:local:dev

文章引用- https://www.mariedrake.com/post/using-tags-to-filter-your-cypress-tests