Global context for working in this monorepo with Claude Code.
This repository combines:
- Python libraries and demos
- Pytest + Playwright automation
- Robot Framework suites
- Load-testing artifacts (JMeter/Postman)
- Shared utility modules
When making changes, prefer minimal, targeted edits and avoid broad refactors unless requested.
- OS used most often: Windows (PowerShell)
- Python: 3.11+ supported; tooling config targets Python 3.12
- Install deps:
pip install -r requirements.txt
- Install Playwright browsers when needed:
playwright install
Use Ruff (configured in pyproject.toml):
python -m ruff check .python -m ruff check . --fixpython -m ruff format .
- Full run:
python -m pytest
- Marker-based run:
python -m pytest -m uipython -m pytest -m api
- Single file:
python -m pytest pytest_demo/tests/unit/test_csv_reader.py -q
Notes:
- pytest.ini writes Allure output to
temps/allure-results - Default testpaths include:
pytestrobot
- Run all Robot demos:
python -m robot --outputdir temps/robot_all robot_demo/
- Run calculator suite:
python -m robot --outputdir temps/robot_calculator robot_demo/calculator/
- Run Tangerine Playwright suite:
python -m robot --outputdir temps/robot_tangerine_playwright robot_demo/tangerine_playwright/
- Dry run (syntax/keyword wiring):
python -m robot --dryrun --outputdir temps/robot_tangerine_playwright_dryrun robot_demo/tangerine_playwright/
- Generate results via pytest:
python -m pytest --alluredir=temps/allure-results --clean-alluredir
- Open report:
allure serve temps/allure-results
pytest: pytest-based tests (ui/api/unit/ddt/playwright)robot: Robot Framework suites and keyword librariesself_healing/: locator healing logic for UI automationai_gen/: AI-based test/code generation helpersutils/: shared helpers and integrations (config, analytics, qTest, DB)skill_spring/algorithms: algorithm and data-structure examplesload_test: JMeter and Postman assetstemps/: generated logs, reports, videos, and temporary artifacts
- Keep changes scoped to the requested task.
- Do not edit generated outputs in
temps/unless explicitly asked. - Prefer stable selectors and reusable helpers for UI tests.
- For Robot keyword/library changes, keep keyword names descriptive and consistent.
- Reuse shared helpers in
utils/before adding duplicate logic. - Preserve existing style rules from pyproject.toml:
- line length 100
- double quotes
- sorted imports via Ruff/isort profile
Pick the smallest meaningful validation first, then broaden only if needed.
- Python utility/module change:
- run targeted pytest file(s)
- Pytest UI/API change:
- run impacted test module and marker subset
- Robot change:
- run target suite, optionally dry run first
- Cross-cutting change:
- run
python -m pytestand at least one relevant Robot suite
- run
- JMeter and Postman files in
load_testare source artifacts. - Avoid mass reformatting JSON/JMX files unless task requires it.
- If environments are modified, keep variable names backward compatible when possible.
- Never hardcode secrets or tokens.
- Use environment variables for API keys and endpoints.
- Keep defaults in
config/config.pyand override through env vars.
When summarizing work, include:
- files changed
- commands run
- result status (pass/fail/not run)
- follow-up actions if validation was partial