From 81bae574b9187343e2a59cfd7bc9d45074ab5abe Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Tue, 12 May 2026 18:14:46 +0200 Subject: [PATCH 1/2] maint(web): output name of TC reporter This change outputs the name of the TC reporter used for a test. This will help in troubleshooting. Build-bot: skip build:web Test-bot: skip --- common/test/resources/mocha-teamcity-reporter/teamcity.cjs | 2 ++ common/test/resources/playwright-TC-reporter.ts | 1 + common/test/resources/test-runner-TC-reporter.mjs | 6 ++++-- web/build.sh | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/common/test/resources/mocha-teamcity-reporter/teamcity.cjs b/common/test/resources/mocha-teamcity-reporter/teamcity.cjs index 24c76a5f2b..fd901faaa1 100644 --- a/common/test/resources/mocha-teamcity-reporter/teamcity.cjs +++ b/common/test/resources/mocha-teamcity-reporter/teamcity.cjs @@ -135,6 +135,8 @@ function Teamcity(runner, options) { const ignoredTests = {}; const testState = { pending: 0 }; + log('Initializing Mocha TeamCity Reporter'); + runner.on(EVENT_SUITE_BEGIN, function (suite) { handleFlow(true, hasParentFlowId); if (suite.root) { diff --git a/common/test/resources/playwright-TC-reporter.ts b/common/test/resources/playwright-TC-reporter.ts index ad082dedf4..20d6ac39d4 100644 --- a/common/test/resources/playwright-TC-reporter.ts +++ b/common/test/resources/playwright-TC-reporter.ts @@ -178,6 +178,7 @@ export default class PlaywrightTeamcityReporter implements Reporter { private root!: TestNode; public constructor(options: { parentFlow?: string } = {}) { + console.log('Initializing Playwright TeamCity Reporter'); TestNode.RootFlow = options.parentFlow ?? 'unit_tests'; } diff --git a/common/test/resources/test-runner-TC-reporter.mjs b/common/test/resources/test-runner-TC-reporter.mjs index 8a6aeaccf2..33198592af 100644 --- a/common/test/resources/test-runner-TC-reporter.mjs +++ b/common/test/resources/test-runner-TC-reporter.mjs @@ -94,14 +94,16 @@ export default function teamcityReporter({ name="Web Test Runner JavaScript test /** @type {import('@web/test-runner').Reporter} */ const reporter = { - start({config, sessions}) { + start({ config, sessions }) { + logger = config.logger; + logger.log('Initializing Web Test Runner TeamCity Reporter'); + rootDir = config.rootDir; for(const session of sessions.all()) { testDefMap.set(buildSessionName(session), new Map()); } - logger = config.logger; logger.log(`##teamcity[blockOpened name='${e(name)}']`); }, stop(args) { diff --git a/web/build.sh b/web/build.sh index d047b7dece..ca253ab82c 100755 --- a/web/build.sh +++ b/web/build.sh @@ -205,12 +205,15 @@ function do_browser_tests() { pushd "${KEYMAN_ROOT}" if is_test_included dom; then + builder_echo "Running browser-based tests..." web-test-runner --config "web/src/test/auto/dom/web-test-runner${WTR_CONFIG}.config.mjs" ${WTR_INSPECT} fi if is_test_included integrated; then + builder_echo "Running integration tests..." web-test-runner --config "web/src/test/auto/integrated/web-test-runner${WTR_CONFIG}.config.mjs" ${WTR_INSPECT} fi if is_test_included e2e; then + builder_echo "Running end-to-end tests..." npx playwright test --config "web/src/test/auto/e2e/playwright.config.ts" fi popd From 6af638b9a8b94b5d9af89795fe2b027d90ec14d0 Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Wed, 13 May 2026 11:33:49 +0200 Subject: [PATCH 2/2] maint(web): fix starting local dev server for e2e tests Starting the local dev server before running the e2e tests with `web/build.sh start` didn't work on Windows. This change now directly calls `node` to start the server which seems to work cross-platform. Fixes: #15895 Build-bot: skip build:web Test-bot: skip --- web/src/test/auto/e2e/playwright.config.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web/src/test/auto/e2e/playwright.config.ts b/web/src/test/auto/e2e/playwright.config.ts index ad20aa9c15..ff888b5434 100644 --- a/web/src/test/auto/e2e/playwright.config.ts +++ b/web/src/test/auto/e2e/playwright.config.ts @@ -76,7 +76,10 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: `"${KEYMAN_ROOT}/node_modules/.bin/gosh" "../../../../build.sh start"`, + // Normally we'd run `web/build.sh start` or `gosh web/build.sh start` + // here, but that's causing problems on Windows. + command: 'node web/src/tools/testing/test-server/index.cjs', + cwd: KEYMAN_ROOT, url: 'http://localhost:3000', reuseExistingServer: !process.env.KEYMAN_IS_CI_BUILD, },