Я использую TestCafe для запуска своих интеграционных тестов. Я знаю, что у него есть функция test.skip
, которая отлично подходит, когда я тестирую локально и хочу пропустить набор тестов, которые мне не нужны/не хочу запускать... но мне было интересно, есть ли способ запустить ВСЕ ИСПЫТАНИЯ, кроме--test-meta environmentSpecific=true
и т.д.?
У нас есть несколько разных сред, и я ищу простой способ пропустить тесты через интерфейс командной строки в зависимости от среды, на которую мы ориентируемся при сборке.
Да, вы можете сделать это, используя программный способ запуска TestCafe. См. пример:
const createTestCafe = require('testcafe');
let testcafe = null;
createTestCafe('localhost', 1337, 1338)
.then(tc => {
testcafe = tc;
const runner = testcafe.createRunner();
return runner
.src('/tests')
.filter((testName, fixtureName, fixturePath, testMeta, fixtureMeta) => {
return !testMeta.environmentSpecific;
})
.browsers(['chrome', 'safari'])
.run();
})
.then(failedCount => {
console.info('Tests failed: ' + failedCount);
testcafe.close();
});
См. также: Укажите метаданные теста
Я не могу комментировать, потому что у меня нет 50 представителей ...
@mlosev, как бы вы отфильтровали файл .testcaferc.json, как вы это сделали с бегуном?
Я хочу запустить все тесты, кроме тех, у которых есть мета toDo: «да». Текущий файл конфигурации:
{
"assertionTimeout": 5000,
"browsers": ["chrome --window-size=1920,1159"],
"concurrency": 7,
"pageLoadTimeout": 15000,
"reporter": {
"name": "spec",
"output": "artifacts/reports/test_suite_results"
},
"screenshots": {
"path": "artifacts/screenshots",
"pathPattern": "${TEST}_${DATE}_${TIME}.png",
"takeOnFails": true
},
"selectorTimeout": 5000,
"skipJsErrors": false,
"src": "tests",
"videoEncodingOptions": {
"aspect": "16:9",
"framerate": 30
},
"videoOptions": {
"failedOnly": true,
"pathPattern": "${TEST}_${DATE}_${TIME}.mp4",
"singleFile": false
},
"videoPath": "artifacts/recordings"
}
@mlosev, отметив вас в комментарии, поскольку он не отмечает пользователей в ответах.