fix(ci): exclude E2E tests requiring Docker-in-Docker from CI
- Add missing pytest markers (e2e, requires_docker) to pyproject.toml - Update CI workflow to skip E2E tests with -m "not e2e" - Update integration test documentation with CI configuration notes - E2E tests can still be run locally with: pytest -m e2e Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
@@ -40,7 +40,10 @@ jobs:
|
||||
pip install -r requirements-dev.txt
|
||||
|
||||
- name: Run Tests
|
||||
run: pytest tests/ -v --cov=app --cov-report=xml --cov-report=term --junitxml=junit.xml -o junit_family=legacy
|
||||
# Exclude E2E tests (-m "not e2e") as they require Docker-in-Docker (testcontainers)
|
||||
# which isn't well-supported in GitHub Actions without additional DinD configuration.
|
||||
# E2E tests can be run locally with: pytest -m e2e
|
||||
run: pytest tests/ -v --cov=app --cov-report=xml --cov-report=term --junitxml=junit.xml -o junit_family=legacy -m "not e2e"
|
||||
|
||||
- name: Upload coverage reports to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
|
||||
@@ -156,6 +156,8 @@ markers = [
|
||||
"requires_external: Tests requiring external services (OpenAI, Azure, etc.)",
|
||||
"requires_db: Tests requiring database",
|
||||
"requires_redis: Tests requiring Redis",
|
||||
"e2e: End-to-end tests with full infrastructure (requires Docker)",
|
||||
"requires_docker: Tests requiring Docker containers (testcontainers)",
|
||||
]
|
||||
|
||||
# mypy configuration
|
||||
|
||||
@@ -359,7 +359,29 @@ docker volume prune -f
|
||||
|
||||
## CI/CD Integration
|
||||
|
||||
### GitHub Actions Example
|
||||
### GitHub Actions - Current Configuration
|
||||
|
||||
The DocuElevate CI workflow (`.github/workflows/tests.yaml`) **excludes E2E tests** by default because they require Docker-in-Docker (testcontainers), which requires additional configuration in GitHub Actions.
|
||||
|
||||
```yaml
|
||||
- name: Run Tests
|
||||
# Exclude E2E tests - they require Docker-in-Docker (testcontainers)
|
||||
run: pytest tests/ -v --cov=app -m "not e2e"
|
||||
```
|
||||
|
||||
**To run E2E tests locally:**
|
||||
```bash
|
||||
pytest -m e2e -v
|
||||
```
|
||||
|
||||
**To run all tests including E2E locally:**
|
||||
```bash
|
||||
pytest tests/ -v
|
||||
```
|
||||
|
||||
### GitHub Actions with E2E Support (Optional)
|
||||
|
||||
If you want to enable E2E tests in CI, you need Docker-in-Docker setup:
|
||||
|
||||
```yaml
|
||||
name: Integration Tests
|
||||
|
||||
Reference in New Issue
Block a user