mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
# Description of Changes cucumber tests to run multiple threads of commands at same time --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have run `task check` to verify linters, typechecks, and tests pass - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#7-testing) for more details.
45 lines
1.7 KiB
YAML
45 lines
1.7 KiB
YAML
version: '3'
|
|
|
|
tasks:
|
|
install:
|
|
desc: "Sync the Python environment with the cucumber test dependencies"
|
|
run: once
|
|
# Deliberately no sources/status fingerprint: the engine venv is shared, so it can
|
|
# already exist while synced to a different dependency group. uv no-ops when correct.
|
|
cmds:
|
|
- uv sync --project ../../engine --locked --group cucumber
|
|
|
|
run:
|
|
desc: "Run the cucumber suite against a running server (BASE_URL, default localhost:8080)"
|
|
deps: [install]
|
|
cmds:
|
|
- uv run --project ../../engine --locked --group cucumber python -m behave --no-capture -f plain {{.CLI_ARGS}}
|
|
|
|
nightly:
|
|
desc: "Run the @nightly cucumber scenarios, excluded from the default run"
|
|
summary: |
|
|
Heavy LibreOffice/Calibre/Ghostscript conversions. behave.ini excludes @nightly,
|
|
so this opts back in explicitly.
|
|
|
|
Pass extra behave flags via -- :
|
|
task cucumber:nightly -- --tags=@convert
|
|
deps: [install]
|
|
cmds:
|
|
- uv run --project ../../engine --locked --group cucumber python -m behave --tags=@nightly --no-capture -f plain {{.CLI_ARGS}}
|
|
|
|
parallel:
|
|
desc: "Run the cucumber suite as concurrent shards against one server (SHARDS, default 10)"
|
|
summary: |
|
|
Splits the feature files across SHARDS concurrent behave processes hitting a single
|
|
backend, to shake out cross-request interference. Auth-coupled features are pinned
|
|
to one shard because they change the admin password mid-scenario.
|
|
|
|
task cucumber:parallel
|
|
task cucumber:parallel SHARDS=4
|
|
BASE_URL=http://localhost:8081 task cucumber:parallel
|
|
deps: [install]
|
|
vars:
|
|
SHARDS: '{{.SHARDS | default "10"}}'
|
|
cmds:
|
|
- bash run-parallel.sh {{.SHARDS}} {{if .CLI_ARGS}}-- {{.CLI_ARGS}}{{end}}
|