Files
mongo/docs/testing/README.md
Steve McClure 8ef2156b6c SERVER-112569: Document fixture lifecycles better (#42763)
GitOrigin-RevId: 21e309ba0911ea3a94ef3d52714545367114ed6b
2025-10-20 22:37:25 +00:00

39 lines
1.5 KiB
Markdown

# Testing
Most tests for MongoDB are run through resmoke, our test runner and orchestration tool.
The entry point for resmoke can be found at `buildscripts/resmoke.py`
## Concepts
Learn more about related topics using their own targeted documentation:
- [resmoke](../../buildscripts/resmokelib/README.md), the test runner
- [suites](../../buildscripts/resmokeconfig/suites/README.md), how tests are grouped and configured
- [fixtures](../../buildscripts/resmokelib/testing/fixtures/README.md), specify the server topology that tests run against
- [hooks](../../buildscripts/resmokelib/testing/hooks/README.md), logic to run before, after and/or between individual tests
- [testcases](../../buildscripts/resmokelib/testing/testcases/README.md), Python-based unittest interfaces that resmoke can run as different "kinds" of tests.
## Basic Example
First, ensure that your python `venv` is active and up to date:
```
python3 -m venv python3-venv
source python3-venv/bin/activate
buildscripts/poetry_sync.sh
```
and you've built the source binaries to run against, eg:
```
bazel build install-dist-test
```
Now, **run the test content** from one test file:
```
buildscripts/resmoke.py run --suites=no_passthrough jstests/noPassthrough/shell/js/string.js
```
The suite defined in [buildscripts/resmokeconfig/suites/no_passthrough.yml](../../buildscripts/resmokeconfig/suites/no_passthrough.yml) includes that `string.js` file via glob selections, specifies no fixtures, no hooks, and a minimal config for the executor.