Попытка распараллелить наши API-тесты с помощью mocha-parallel-tests.
В нашей тестовой среде у нас есть файл конфигурации, который генерирует конфигурацию относительно отправленных флагов (в process.argv)
/config.js/
const argv = require("minimist")(process.argv)
const env = argv.env || "qa";
export = {
env: envData.env[env] as Env,
envUsed: env,
build: argv.build || "",
launchName: argv.launchName || "buildName",
loggerLevel: argv.loggerLevel || "TRACE",
}
Бегун настроен в основном файле:
/main.js/
const config = require('./config.js')
const Mocha = require('mocha-parallel-tests').default;
const suites = {
hcs_smoke: [
"tests/file1.js",
"tests/file2.js",
"tests/file3.js",
"tests/file4.js",
],
}
const mochaMain = new Mocha({
timeout: config.timeout,
reporter: 'mocha-multi-reporters',
reporterOptions: reporterConfig[config.mode],
grep: config.grep,
});
// filter test cases
const pathRegExp = new RegExp(config.testTag, "i");
mochaMain.files = suites[config.suite].filter(path => path.match(pathRegExp)).map(path => "./bin/" + path);
if (mochaMain.files <= 0) {
console.error(`Failed to found tests by pattern ${pathRegExp}`);
process.exit(1);
}
const runner = mochaMain.run();
Кроме того, наши тесты используют файл конфигурации для запуска через правильный env.
Команда для запуска:
node main.js --suite="smoke" --env="dev"
Проблема в том, что тесты всегда выполняются через QA (по умолчанию в файле конфигурации), а не в команде.
Как я могу запустить тесты через другие envs?