Testing
Run the Maven suite with Java 25:
JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64 ./mvnw test
The current suite has eight tests:
- Five Spring-context controller tests send
test_1.jpegthroughtest_5.jpegtoProcessControllerwith generated answer-key CSV data. - One OMR extraction test checks all five bundled sheets against hard-coded answers.
- One OMR smoke test prints detected answers for
test_3.jpegwithout assertions. - One Spring Boot application-context test verifies that the context loads.
The five bundled images include flat scans and phone photos. The OMR assertions include a known AC double mark. Tests write debug overlays because OMR extraction has that runtime side effect.
Under the test profile, OCR is replaced by DummyOcrServiceImpl, which always returns Dummy Student. The suite does not validate Tesseract, tessdata, real OCR output, upload boundaries, malformed requests, generic 500 responses, authentication, request limits, concurrency, or behavior with layouts other than the bundled sheets.
The documentation workflow builds this site. It does not run the Maven suite and must not be treated as Spring service validation.