This folder contains the integration tests of the extension.
They are defined using Playwright test runner and Galata helper.
The Playwright configuration is defined in playwright.config.js.
The JupyterLab server configuration to use for the integration test is defined in jupyter_server_test_config.py.
The default configuration will produce video for failing tests and an HTML report.
There is a new experimental UI mode that you may fall in love with; see that video.
All commands are assumed to be executed from the root directory
To run the tests, you need to:
- Install additional dependency:
pip install jupyter-archive
- Compile the extension:
jlpm install
jlpm build:prod
Check the extension is installed in JupyterLab.
- Install test dependencies (needed only once):
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
- Execute the Playwright tests:
cd ./ui-tests
jlpm playwright test
Test results will be shown in the terminal. In case of any test failures, the test report will be opened in your browser at the end of the tests execution; see Playwright documentation for configuring that behavior.
All commands are assumed to be executed from the root directory
If you are comparing snapshots to validate your tests, you may need to update the reference snapshots stored in the repository. To do that, you need to:
- Install additional dependency:
pip install jupyter-archive
- Compile the extension:
jlpm install
jlpm build:prod
Check the extension is installed in JupyterLab.
- Install test dependencies (needed only once):
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
- Execute the Playwright command:
cd ./ui-tests
jlpm playwright test -u
Some discrepancy may occurs between the snapshots generated on your computer and the one generated on the CI. To ease updating the snapshots on a PR, you can type
please update playwright snapshots
to trigger the update by a bot on the CI. Once the bot has computed new snapshots, it will commit them to the PR branch.
All commands are assumed to be executed from the root directory
To create tests, the easiest way is to use the code generator tool of playwright:
- Install additional dependency:
pip install jupyter-archive
- Compile the extension:
jlpm install
jlpm build:prod
Check the extension is installed in JupyterLab.
- Install test dependencies (needed only once):
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
- Start the server:
cd ./ui-tests
jlpm start
- Execute the Playwright code generator in another terminal:
cd ./ui-tests
jlpm playwright codegen localhost:8888
All commands are assumed to be executed from the root directory
To debug tests, a good way is to use the inspector tool of playwright:
- Install additional dependency:
pip install jupyter-archive
- Compile the extension:
jlpm install
jlpm build:prod
Check the extension is installed in JupyterLab.
- Install test dependencies (needed only once):
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
- Execute the Playwright tests in debug mode:
cd ./ui-tests
jlpm playwright test --debug
To update the web browser versions, you must update the package @playwright/test
:
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install