FireDevOps FireMUD & Ops Projects

🧪 FireMUD System Architecture: Testing Strategy

FireMUD employs a layered testing approach to keep services reliable while avoiding excessive CI/CD costs. This document describes the scope of each test type, the tooling in use, and how these tests fit into our development workflow.


📝 Testing Scope

Each microservice has its own unit and integration tests. Cross‑service scenarios are also covered in a dedicated suite. Load tests run independently using Gatling.

Test data seeding strategies are still under discussion. For now, tests set up their own minimal fixtures programmatically.


🛠 Tooling and Gradle Layout

The repository uses a hierarchical Gradle setup. The root build.gradle delegates to per‑service builds so each service defines its own test, integrationTest, and cross‑service tasks. This allows running:

./gradlew :service-name:test
./gradlew :service-name:integrationTest
./gradlew crossServiceTest

Separate jobs exist for unit, integration, and cross-service tests during manual merge review, but they are not executed in CI.


🚦 CI/CD Integration

To keep cloud usage minimal, GitHub Actions only builds and deploys services. Developers run the full test suite locally before merging. The CI/CD Pipeline document references this manual step.

Load testing is executed on demand outside of CI and does not block deployments.