Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,7 @@ vscode.d.ts
vscode.proposed.*.d.ts
xunit-test-results.xml
tsconfig.tsbuildinfo

# ExTester (vscode-extension-tester) E2E artifacts
test-resources
.test-extensions
2 changes: 2 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ node_modules/**
obj/**
logs/**
out/**
.test-extensions/**
test-resources/**
precommit.hook
pythonFiles/.env
pythonFiles/**/*.pyc
Expand Down
5,922 changes: 5,905 additions & 17 deletions package-lock.json

Large diffs are not rendered by default.

9 changes: 8 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2672,6 +2672,12 @@
"test:performance:execution": "cross-env VSC_JUPYTER_CI_TEST_GREP=@executionPerformance CODE_TESTS_WORKSPACE=src/test/datascience TEST_FILES_SUFFIX=*.vscode.test,*.vscode.common.test VSC_JUPYTER_FORCE_LOGGING= node ./out/test/standardTest.node.js",
"test:performance:notebook": "cross-env VSC_JUPYTER_CI_TEST_GREP=@notebookPerformance VSC_JUPYTER_CI_TEST_DO_NOT_INSTALL_PYTHON_EXT=true CODE_TESTS_WORKSPACE=src/test/datascience TEST_FILES_SUFFIX=*.vscode.test,*.vscode.common.test node ./out/test/standardTest.node.js",
"test:smoke": "cross-env VSC_JUPYTER_FORCE_LOGGING=true node --no-force-async-hooks-checks ./out/test/smokeTest.node.js",
"compile-e2e": "tsc -p ./test/e2e/tsconfig.json",
"pretest:e2e": "npm run compile-e2e",
"setup:e2e:vscode": "extest get-vscode -c max && extest get-chromedriver -c max",
"setup:e2e:deps": "extest install-from-marketplace ms-python.python -e .test-extensions",
"setup:e2e": "npm run setup:e2e:vscode && npm run setup:e2e:deps",
"test:e2e": "extest setup-and-run \"./out/e2e/suite/*.e2e.test.js\" -c max -o ./test/e2e/settings.json -e .test-extensions -m ./test/e2e/.mocharc.js -i",
"test:unittests": "mocha --config ./build/.mocha.unittests.js.json ./out/**/*.unit.test.js",
"test": "npm run test:unittests",
"typecheck": "tsc -p ./ --noEmit",
Expand Down Expand Up @@ -2910,7 +2916,8 @@
"typescript": "^5.8.3",
"unicode-properties": "^1.3.1",
"utf-8-validate": "^5.0.8",
"util": "^0.12.4"
"util": "^0.12.4",
"vscode-extension-tester": "^8.23.0"
},
"lint-staged": {
"src/**/*.{ts,tsx}": [
Expand Down
1,156 changes: 1,156 additions & 0 deletions specs/e2e-extester-testing-plan.md

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions test/e2e/.mocharc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Mocha configuration for the ExTester (vscode-extension-tester) E2E suite.
// UI tests are slow: the 2s Mocha default is unusable. Individual waits inside the
// tests are the real guard rails; this is a generous suite-level safety net.
module.exports = {
timeout: 1500000, // 25 min — env creation + first kernel start (venv + toolkit) can be slow
retries: 1, // absorb transient UI flakiness with a single retry
reporter: 'spec',
color: true
};
21 changes: 21 additions & 0 deletions test/e2e/fixtures/hello-world.deepnote
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: '1.0.0'
metadata:
createdAt: '2025-01-01T00:00:00.000Z'
modifiedAt: '2025-01-01T00:00:00.000Z'
project:
id: e2e-hello-world-project
name: E2E Hello World
notebooks:
- id: e2e-hello-world-notebook
name: Hello World
blocks:
- id: e2e-hello-block
blockGroup: e2e-group
type: code
content: |-
print("hello world")
sortingKey: a0
metadata: {}
executionMode: block
isModule: false
settings: {}
13 changes: 13 additions & 0 deletions test/e2e/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"files.simpleDialog.enable": true,
"window.dialogStyle": "custom",
"workbench.editor.enablePreview": false,
"workbench.startupEditor": "none",
"extensions.ignoreRecommendations": true,
"workbench.remoteIndicator.showExtensionRecommendations": false,
"git.autoRepositoryDetection": false,
"telemetry.telemetryLevel": "off",
"update.mode": "none",
"jupyter.kernels.trusted": true,
"security.workspace.trust.enabled": false
}
Loading
Loading