From 2368e6dc367c7210fde397a4eb73fcca499044df Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 5 Mar 2025 15:39:39 +0100 Subject: [PATCH] Revert "tests - enable API tests with test runner" (#242688) Revert "tests - enable API tests with test runner (#241149)" This reverts commit 8f2e1b22ed3620e81d2c2fa1aea343ef12580d5c. --- .vscode-test.js | 25 +--- scripts/test-integration.bat | 248 +++++++++++++++++------------------ scripts/test-integration.sh | 6 +- 3 files changed, 131 insertions(+), 148 deletions(-) diff --git a/.vscode-test.js b/.vscode-test.js index 823ef615f4f..917413ede2a 100644 --- a/.vscode-test.js +++ b/.vscode-test.js @@ -19,7 +19,7 @@ const { defineConfig } = require('@vscode/test-cli'); * A list of extension folders who have opted into tests, or configuration objects. * Edit me to add more! * - * @type {Array & { label: string }>} + * @type {Array & { label: string })>} */ const extensions = [ { @@ -65,20 +65,6 @@ const extensions = [ { label: 'microsoft-authentication', mocha: { timeout: 60_000 } - }, - { - label: 'vscode-api-tests-folder', - extensionDevelopmentPath: `extensions/vscode-api-tests`, - workspaceFolder: `extensions/vscode-api-tests/testWorkspace`, - mocha: { timeout: 60_000 }, - files: 'extensions/vscode-api-tests/out/singlefolder-tests/**/*.test.js', - }, - { - label: 'vscode-api-tests-workspace', - extensionDevelopmentPath: `extensions/vscode-api-tests`, - workspaceFolder: `extensions/vscode-api-tests/testworkspace.code-workspace`, - mocha: { timeout: 60_000 }, - files: 'extensions/vscode-api-tests/out/workspace-tests/**/*.test.js', } ]; @@ -89,12 +75,9 @@ const defaultLaunchArgs = process.env.API_TESTS_EXTRA_ARGS?.split(' ') || [ const config = defineConfig(extensions.map(extension => { /** @type {import('@vscode/test-cli').TestConfiguration} */ - const config = { - platform: 'desktop', - files: `extensions/${extension.label}/out/**/*.test.js`, - extensionDevelopmentPath: `extensions/${extension.label}`, - ...extension, - }; + const config = typeof extension === 'object' + ? { files: `extensions/${extension.label}/out/**/*.test.js`, ...extension } + : { files: `extensions/${extension}/out/**/*.test.js`, label: extension }; config.mocha ??= {}; if (process.env.BUILD_ARTIFACTSTAGINGDIRECTORY) { diff --git a/scripts/test-integration.bat b/scripts/test-integration.bat index 24a754d3b29..b59cceada07 100644 --- a/scripts/test-integration.bat +++ b/scripts/test-integration.bat @@ -1,124 +1,124 @@ -@echo off -setlocal - -pushd %~dp0\.. - -set VSCODEUSERDATADIR=%TEMP%\vscodeuserfolder-%RANDOM%-%TIME:~6,2% -set VSCODECRASHDIR=%~dp0\..\.build\crashes -set VSCODELOGSDIR=%~dp0\..\.build\logs\integration-tests - -:: Figure out which Electron to use for running tests -if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( - chcp 65001 - set INTEGRATION_TEST_ELECTRON_PATH=.\scripts\code.bat - set VSCODE_BUILD_BUILTIN_EXTENSIONS_SILENCE_PLEASE=1 - - echo Running integration tests out of sources. -) else ( - set VSCODE_CLI=1 - set ELECTRON_ENABLE_LOGGING=1 - - echo Running integration tests with '%INTEGRATION_TEST_ELECTRON_PATH%' as build. -) - -echo Storing crash reports into '%VSCODECRASHDIR%'. -echo Storing log files into '%VSCODELOGSDIR%'. - - -:: Unit tests - -echo. -echo ### node.js integration tests -call .\scripts\test.bat --runGlob **\*.integrationTest.js %* -if %errorlevel% neq 0 exit /b %errorlevel% - - -:: Tests in the extension host - -set API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-extensions --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR% - -echo. -echo ### API tests (folder) -call npm run test-extension -- -l vscode-api-tests-folder --enable-proposed-api=vscode.vscode-api-tests %API_TESTS_EXTRA_ARGS% -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### API tests (workspace) -call npm run test-extension -- -l vscode-api-tests-workspace --enable-proposed-api=vscode.vscode-api-tests %API_TESTS_EXTRA_ARGS% -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Colorize tests -call npm run test-extension -- -l vscode-colorize-tests -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Terminal Suggest tests -call npm run test-extension -- -l terminal-suggest --enable-proposed-api=vscode.vscode-api-tests -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### TypeScript tests -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit %API_TESTS_EXTRA_ARGS% -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Markdown tests -call npm run test-extension -- -l markdown-language-features -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Emmet tests -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\emmet\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\emmet --extensionTestsPath=%~dp0\..\extensions\emmet\out\test %API_TESTS_EXTRA_ARGS% -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Git tests -for /f "delims=" %%i in ('node -p "require('fs').realpathSync.native(require('os').tmpdir())"') do set TEMPDIR=%%i -set GITWORKSPACE=%TEMPDIR%\git-%RANDOM% -mkdir %GITWORKSPACE% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %GITWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\git --extensionTestsPath=%~dp0\..\extensions\git\out\test %API_TESTS_EXTRA_ARGS% -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Ipynb tests -call npm run test-extension -- -l ipynb -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Notebook Output tests -call npm run test-extension -- -l notebook-renderers -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### Configuration editing tests -set CFWORKSPACE=%TEMPDIR%\cf-%RANDOM% -mkdir %CFWORKSPACE% -call npm run test-extension -- -l configuration-editing -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### GitHub Authentication tests -call npm run test-extension -- -l github-authentication -if %errorlevel% neq 0 exit /b %errorlevel% - -:: Tests standalone (CommonJS) - -echo. -echo ### CSS tests -call %~dp0\node-electron.bat %~dp0\..\extensions\css-language-features/server/test/index.js -if %errorlevel% neq 0 exit /b %errorlevel% - -echo. -echo ### HTML tests -call %~dp0\node-electron.bat %~dp0\..\extensions\html-language-features/server/test/index.js -if %errorlevel% neq 0 exit /b %errorlevel% - - -:: Cleanup - -rmdir /s /q %VSCODEUSERDATADIR% - -popd - -endlocal +@echo off +setlocal + +pushd %~dp0\.. + +set VSCODEUSERDATADIR=%TEMP%\vscodeuserfolder-%RANDOM%-%TIME:~6,2% +set VSCODECRASHDIR=%~dp0\..\.build\crashes +set VSCODELOGSDIR=%~dp0\..\.build\logs\integration-tests + +:: Figure out which Electron to use for running tests +if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( + chcp 65001 + set INTEGRATION_TEST_ELECTRON_PATH=.\scripts\code.bat + set VSCODE_BUILD_BUILTIN_EXTENSIONS_SILENCE_PLEASE=1 + + echo Running integration tests out of sources. +) else ( + set VSCODE_CLI=1 + set ELECTRON_ENABLE_LOGGING=1 + + echo Running integration tests with '%INTEGRATION_TEST_ELECTRON_PATH%' as build. +) + +echo Storing crash reports into '%VSCODECRASHDIR%'. +echo Storing log files into '%VSCODELOGSDIR%'. + + +:: Unit tests + +echo. +echo ### node.js integration tests +call .\scripts\test.bat --runGlob **\*.integrationTest.js %* +if %errorlevel% neq 0 exit /b %errorlevel% + + +:: Tests in the extension host + +set API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-extensions --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR% + +echo. +echo ### API tests (folder) +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\singlefolder-tests %API_TESTS_EXTRA_ARGS% +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### API tests (workspace) +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests %API_TESTS_EXTRA_ARGS% +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Colorize tests +call npm run test-extension -- -l vscode-colorize-tests +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Terminal Suggest tests +call npm run test-extension -- -l terminal-suggest --enable-proposed-api=vscode.vscode-api-tests +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### TypeScript tests +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit %API_TESTS_EXTRA_ARGS% +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Markdown tests +call npm run test-extension -- -l markdown-language-features +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Emmet tests +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\emmet\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\emmet --extensionTestsPath=%~dp0\..\extensions\emmet\out\test %API_TESTS_EXTRA_ARGS% +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Git tests +for /f "delims=" %%i in ('node -p "require('fs').realpathSync.native(require('os').tmpdir())"') do set TEMPDIR=%%i +set GITWORKSPACE=%TEMPDIR%\git-%RANDOM% +mkdir %GITWORKSPACE% +call "%INTEGRATION_TEST_ELECTRON_PATH%" %GITWORKSPACE% --extensionDevelopmentPath=%~dp0\..\extensions\git --extensionTestsPath=%~dp0\..\extensions\git\out\test %API_TESTS_EXTRA_ARGS% +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Ipynb tests +call npm run test-extension -- -l ipynb +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Notebook Output tests +call npm run test-extension -- -l notebook-renderers +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### Configuration editing tests +set CFWORKSPACE=%TEMPDIR%\cf-%RANDOM% +mkdir %CFWORKSPACE% +call npm run test-extension -- -l configuration-editing +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### GitHub Authentication tests +call npm run test-extension -- -l github-authentication +if %errorlevel% neq 0 exit /b %errorlevel% + +:: Tests standalone (CommonJS) + +echo. +echo ### CSS tests +call %~dp0\node-electron.bat %~dp0\..\extensions\css-language-features/server/test/index.js +if %errorlevel% neq 0 exit /b %errorlevel% + +echo. +echo ### HTML tests +call %~dp0\node-electron.bat %~dp0\..\extensions\html-language-features/server/test/index.js +if %errorlevel% neq 0 exit /b %errorlevel% + + +:: Cleanup + +rmdir /s /q %VSCODEUSERDATADIR% + +popd + +endlocal diff --git a/scripts/test-integration.sh b/scripts/test-integration.sh index 01c002fe07b..89006480308 100755 --- a/scripts/test-integration.sh +++ b/scripts/test-integration.sh @@ -55,13 +55,13 @@ fi echo echo "### API tests (folder)" echo -npm run test-extension -- -l vscode-api-tests-folder --enable-proposed-api=vscode.vscode-api-tests $API_TESTS_EXTRA_ARGS +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testWorkspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests $API_TESTS_EXTRA_ARGS kill_app echo echo "### API tests (workspace)" echo -npm run test-extension -- -l vscode-api-tests-workspace --enable-proposed-api=vscode.vscode-api-tests $API_TESTS_EXTRA_ARGS +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests $API_TESTS_EXTRA_ARGS kill_app echo @@ -71,7 +71,7 @@ npm run test-extension -- -l vscode-colorize-tests kill_app echo -echo "### Terminal Suggest tests" +echo "### Terminal Suggest tests" echo npm run test-extension -- -l terminal-suggest --enable-proposed-api=vscode.vscode-api-tests kill_app