Running Tests¶
This guide explains how to execute tests locally and in the CI/CD pipeline.
Prerequisites¶
- Java 17 (OpenJDK or Oracle JDK)
- Node.js 20.18.0
- Yarn 4.5.0
- Maven 3.6+
Local Test Execution¶
Backend Tests¶
Run all Java unit tests:
Run specific test class:
Note: The project does NOT have JaCoCo configured. Coverage reports are not generated by Maven.
Frontend Tests¶
Run all JavaScript tests:
Run tests with coverage (default behavior):
Run tests without watch mode:
Run specific test file:
Note: The test script automatically includes --coverage flag and runs in watch mode unless CI environment is detected.
Combined Test Execution¶
Run all tests (backend + frontend):
CI/CD Pipeline Testing¶
The automated testing pipeline runs on every push and pull request:
Test Jobs¶
- backend-test: Executes Maven tests (no coverage)
- frontend-test: Runs Jest tests with coverage
- security-scan: OWASP dependency vulnerability analysis
- sonarqube-analysis: Code quality analysis
Pipeline Triggers¶
- Push to main: Full test suite + SonarQube analysis
- Pull Request: Full test suite + SonarQube analysis
- Manual: Can be triggered via GitHub Actions interface
Test Reports¶
Coverage Reports¶
- Backend: No coverage reports (JaCoCo not configured)
- Frontend: Coverage reports in
target/coverage/ - SonarQube: Integrated coverage analysis
Test Results¶
- JUnit: XML reports in
target/surefire-reports/ - Jest: Coverage reports in
target/coverage/ - OWASP: HTML reports in
reports/
Current Test Classes¶
Backend Tests (9 classes)¶
DeconstructedCCMessageTestIssueReporterTestLocaterUtilsTestSarifDeserializationTestGradleGeneratorTestJarGeneratorTestMavenGeneratorTestReportServiceTestResourceServiceTest
Frontend Tests (4 classes)¶
DetailedDescription.test.jsDetailedFix.test.jsIssueList.test.jsNavigationBar.test.js
Debugging Failed Tests¶
Backend Test Failures¶
-
Check Maven Surefire reports:
-
Run with debug output:
Frontend Test Failures¶
-
Run Jest in verbose mode:
-
Debug specific test:
Performance Considerations¶
- Backend: Maven Surefire uses default configuration (no parallel execution configured)
- Test Isolation: Each test class runs independently
- Resource Management: Tests use temporary directories and cleanup automatically
- Frontend: Jest runs with coverage by default via custom test script