[js/web] use windowed Chrome for perf mode (#12157)

This commit is contained in:
Yulong Wang 2022-07-18 14:04:27 -07:00 committed by GitHub
parent b81b652608
commit ced7c2deac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 4 deletions

View file

@ -77,7 +77,8 @@ module.exports = function (config) {
browserSocketTimeout: 60000,
hostname: getMachineIpAddress(),
customLaunchers: {
ChromeTest: { base: 'ChromeHeadless', flags: ['--window-size=1,1', '--enable-features=SharedArrayBuffer'] },
ChromeTest: { base: 'ChromeHeadless', flags: ['--enable-features=SharedArrayBuffer'] },
ChromePerf: { base: 'Chrome', flags: ['--window-size=1,1', '--enable-features=SharedArrayBuffer'] },
ChromeDebug: { debug: true, base: 'Chrome', flags: ['--remote-debugging-port=9333', '--enable-features=SharedArrayBuffer'] },
//

View file

@ -451,7 +451,11 @@ function run(config: Test.Config) {
// STEP 5. use Karma to run test
npmlog.info('TestRunnerCli.Run', '(5/5) Running karma to start test runner...');
const karmaCommand = path.join(npmBin, 'karma');
const browser = getBrowserNameFromEnv(args.env, args.debug);
const browser = getBrowserNameFromEnv(
args.env,
args.bundleMode === 'perf' ? 'perf' :
args.debug ? 'debug' :
'test');
const karmaArgs = ['start', `--browsers ${browser}`];
if (args.debug) {
karmaArgs.push('--log-level info --timeout-mocha 9999999');
@ -552,10 +556,10 @@ function saveConfig(config: Test.Config) {
fs.writeJSONSync(path.join(TEST_ROOT, './testdata-config.json'), config);
}
function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], debug?: boolean) {
function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], mode: 'debug'|'perf'|'test') {
switch (env) {
case 'chrome':
return debug ? 'ChromeDebug' : 'ChromeTest';
return selectChromeBrowser(mode);
case 'edge':
return 'Edge';
case 'firefox':
@ -570,3 +574,14 @@ function getBrowserNameFromEnv(env: TestRunnerCliArgs['env'], debug?: boolean) {
throw new Error(`env "${env}" not supported.`);
}
}
function selectChromeBrowser(mode: 'debug'|'perf'|'test') {
switch (mode) {
case 'debug':
return 'ChromeDebug';
case 'perf':
return 'ChromePerf';
default:
return 'ChromeTest';
}
}