Есть ли способ запустить тест, в котором есть test.meta из TestCafe, использующий runner?

#testing #automation #automated-tests #e2e-testing #testcafe

#тестирование #автоматизация #автоматизированные тесты #e2e-тестирование #testcafe

Вопрос:

У меня есть тест, который я хочу выполнить только с помощью test.meta. Пожалуйста, найдите ниже мой код.

Это тест spec .spec.ts

 import { takeSnapshot } from 'testcafe-blink-diff';
import { AdminHomePage, LoginPage } from '../../pages';
import { config } from '../../config/tescafe.config';

const loginPage: LoginPage = new LoginPage();
const adminHomePage: AdminHomePage = new AdminHomePage();

fixture(`Practice utilization chart`)
  .page(config.baseUrl)
  .beforeEach(async () => {
    await loginPage.login(config.envCredentials.admin.email, config.envCredentials.admin.password);
  });

test.meta({ type: 'visual' })('Can view utilization chart with default interval ', async (t) => {
  await t.expect(adminHomePage.practicesUtilizationChart.chart.exists).ok();
  await t.expect(adminHomePage.practicesUtilizationChart.weekOption.innerText).eql('Week');
  await takeSnapshot(t, {
    fullPage: false,
    timeout: 2000,
    selector: adminHomePage.practicesUtilizationChart.chart,
  });
});
 

И это runner.js который делает то же самое

 // eslint-disable-next-line @typescript-eslint/no-var-requires
const createTestCafe = require('testcafe');

(async () => {
  const testcafe = await createTestCafe('localhost', 1340);

  try {
    const runner = testcafe.createRunner();
    await runner
      .src(['./testcafe/specs/*/*.spec.ts'])
      .browsers(['chrome:headless'])
      .reporter([
        'spec',
        {
          name: 'html',
          output: './testcafe/artifacts/reports/report.html',
        },
      ])
      .screenshots('./testcafe/artifacts/screenshots', true)
      .run({
        selectorTimeout: 2000,
        assertionTimeout: 2000,
        pageLoadTimeout: 5000,
        speed: 0.5,
      });
    // eslint-disable-next-line no-useless-catch
  } catch (error) {
    throw error;
  } finally {
    await testcafe.close();
  }
})();
 

Можно ли запускать тесты с использованием этого runner и meta из тестов?

npx testcafe chrome:headless ./testcafe/specs/*/*.spec.ts --test-meta type=visual запускает тест

npm run test --test-meta type=visual — не запускает тест, который запускает runner с теми же параметрами

package.json

   "scripts": {
    "test": "node testcafe/runner.js",
    }
    
I know that there is an option to read parameters from cli or if I remove the runner or run using npx it works. 

 

Ответ №1:

Вы можете использовать следующие параметры для фильтрации тестов по метаданным:

Они описаны в документации TestCafe.

Комментарии:

1. Я полагаю, что они спрашивают, как мы можем запустить пакет с фильтром и определенными тестовыми метами.