#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:
Вы можете использовать следующие параметры для фильтрации тестов по метаданным:
- параметры командной строки —test-meta и —fixture-meta
- параметры testMeta и fixtureMeta в методе runner.filter
- свойства файла конфигурации filter.testMeta и filter.fixtureMeta
Они описаны в документации TestCafe.
Комментарии:
1. Я полагаю, что они спрашивают, как мы можем запустить пакет с фильтром и определенными тестовыми метами.