diff --git a/integration-tests/vitest.config.ts b/integration-tests/vitest.config.ts index 1214554240c..204ea4a0adf 100644 --- a/integration-tests/vitest.config.ts +++ b/integration-tests/vitest.config.ts @@ -27,10 +27,11 @@ export default defineConfig({ ], retry: 2, fileParallelism: true, + pool: 'forks', poolOptions: { - threads: { - minThreads: 2, - maxThreads: 4, + forks: { + minForks: 2, + maxForks: 4, }, }, }, diff --git a/package.json b/package.json index da9dbffc545..cdfc14b2d66 100644 --- a/package.json +++ b/package.json @@ -53,9 +53,9 @@ "test:integration:sandbox:none": "cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests", "test:integration:sandbox:docker": "cross-env QWEN_SANDBOX=docker npm run build:sandbox && QWEN_SANDBOX=docker vitest run --root ./integration-tests", "test:integration:sandbox:podman": "cross-env QWEN_SANDBOX=podman vitest run --root ./integration-tests", - "test:integration:no-ak:sandbox:none": "cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests --maxWorkers 2 ./fake-openai-server.test.ts ./cli/daemon-invocation-context.test.ts ./cli/list_directory.test.ts ./cli/qwen-serve-routes.test.ts ./cli/qwen-serve-streaming.test.ts ./sdk-typescript/abort-and-lifecycle.test.ts ./sdk-typescript/permission-control.test.ts ./sdk-typescript/sdk-mcp-server.test.ts ./sdk-typescript/subagents.test.ts ./sdk-typescript/system-control.test.ts ./sdk-typescript/tool-control.test.ts", - "test:integration:sdk:sandbox:none": "cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests --poolOptions.threads.maxThreads 2 sdk-typescript", - "test:integration:sdk:sandbox:docker": "cross-env QWEN_SANDBOX=docker npm run build:sandbox && QWEN_SANDBOX=docker vitest run --root ./integration-tests --poolOptions.threads.maxThreads 2 sdk-typescript", + "test:integration:no-ak:sandbox:none": "cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests --poolOptions.forks.maxForks 2 ./fake-openai-server.test.ts ./cli/daemon-invocation-context.test.ts ./cli/list_directory.test.ts ./cli/qwen-serve-routes.test.ts ./cli/qwen-serve-streaming.test.ts ./sdk-typescript/abort-and-lifecycle.test.ts ./sdk-typescript/permission-control.test.ts ./sdk-typescript/sdk-mcp-server.test.ts ./sdk-typescript/subagents.test.ts ./sdk-typescript/system-control.test.ts ./sdk-typescript/tool-control.test.ts", + "test:integration:sdk:sandbox:none": "cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests --poolOptions.forks.maxForks 2 sdk-typescript", + "test:integration:sdk:sandbox:docker": "cross-env QWEN_SANDBOX=docker npm run build:sandbox && QWEN_SANDBOX=docker vitest run --root ./integration-tests --poolOptions.forks.maxForks 2 sdk-typescript", "test:sdk:python": "python3 -m pytest -c packages/sdk-python/pyproject.toml packages/sdk-python/tests -q", "test:integration:cli:sandbox:none": "cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests cli", "test:integration:cli:sandbox:docker": "cross-env QWEN_SANDBOX=docker npm run build:sandbox && QWEN_SANDBOX=docker vitest run --root ./integration-tests cli", diff --git a/scripts/tests/integration-vitest-config.test.ts b/scripts/tests/integration-vitest-config.test.ts new file mode 100644 index 00000000000..5310fad9a7e --- /dev/null +++ b/scripts/tests/integration-vitest-config.test.ts @@ -0,0 +1,19 @@ +/** + * @license + * Copyright 2026 Qwen Team + * SPDX-License-Identifier: Apache-2.0 + */ + +import { describe, expect, it } from 'vitest'; +import integrationConfig from '../../integration-tests/vitest.config.js'; + +describe('integration Vitest config', () => { + it('limits the forks pool used by integration tests', () => { + expect(integrationConfig.test?.pool).toBe('forks'); + expect(integrationConfig.test?.poolOptions?.forks).toEqual({ + minForks: 2, + maxForks: 4, + }); + expect(integrationConfig.test?.poolOptions?.threads).toBeUndefined(); + }); +}); diff --git a/scripts/tests/no-ak-integration-ci.test.js b/scripts/tests/no-ak-integration-ci.test.js index 8f244e7bd38..fda3d425933 100644 --- a/scripts/tests/no-ak-integration-ci.test.js +++ b/scripts/tests/no-ak-integration-ci.test.js @@ -26,7 +26,7 @@ describe('no-AK integration CI wiring', () => { expect(packageJson.scripts[NO_AK_SCRIPT]).toBe( [ - 'cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests --maxWorkers 2', + 'cross-env QWEN_SANDBOX=false vitest run --root ./integration-tests --poolOptions.forks.maxForks 2', './fake-openai-server.test.ts', './cli/daemon-invocation-context.test.ts', './cli/list_directory.test.ts', diff --git a/scripts/tests/package-scripts.test.js b/scripts/tests/package-scripts.test.js index eef5d4f9a28..d27bca3b0af 100644 --- a/scripts/tests/package-scripts.test.js +++ b/scripts/tests/package-scripts.test.js @@ -42,6 +42,17 @@ describe('package scripts', () => { ); }); + it('limits SDK integration tests through the forks pool', () => { + const packageJson = readPackageJson(); + + expect(packageJson.scripts['test:integration:sdk:sandbox:none']).toContain( + '--poolOptions.forks.maxForks 2', + ); + expect( + packageJson.scripts['test:integration:sdk:sandbox:docker'], + ).toContain('--poolOptions.forks.maxForks 2'); + }); + it('cleans package build artifacts before checking the serve fast path bundle', () => { const packageJson = readPackageJson();