Live-app E2E tests live under e2e/. They expect the frontend and backend to already be running locally:
./npmw run backend:start
./npmw run startIn another terminal:
./npmw run e2eOptional: ./npmw run e2e:ui (Playwright UI) or ./npmw run e2e:headed. Override URLs with E2E_BASE_URL (default http://localhost:4200) and E2E_BACKEND_URL (default http://localhost:8080).
Coverage includes authentication, account settings/password, PASS contract search/CRUD, admin screens (users, metrics, health, configuration, logs, API docs, authorities), the contracts widget, and MCP SSE tools/resources.
Collect frontend (Angular) and backend (Java) coverage while the suite runs.
- Start the backend with the JaCoCo agent (not plain
backend:start):
./npmw run backend:start:coverage
./npmw run start- Run the suite (Playwright + dump/report JaCoCo):
./npmw run e2e:coverage- Review reports later:
./npmw run e2e:coverage:open # Angular (V8) HTML
./npmw run e2e:coverage:open:summary # Playwright + frontend summary
./npmw run e2e:coverage:open:backend # Java (JaCoCo) HTML| Report | Location |
|---|---|
| Frontend | coverage-e2e/index.html, lcov.info |
| Backend | target/site/jacoco-e2e/index.html (scoped to io.argorand.poc.dcpass) |
e2e:coverage fails fast if the backend was not started with backend:start:coverage (JaCoCo TCP port 6300). Plain ./npmw run e2e skips all coverage collection.
Sonar is used to analyse code quality. You can start a local Sonar server (accessible on http://localhost:9001) with:
docker compose -f src/main/docker/sonar.yml up -dNote: we have turned off forced authentication redirect for UI in src/main/docker/sonar.yml for out of the box experience while trying out SonarQube, for real use cases turn it back on.
You can run a Sonar analysis with using the sonar-scanner or by using the maven plugin.
Then, run a Sonar analysis:
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=adminIf you need to re-run the Sonar phase, please be sure to specify at least the initialize phase since Sonar properties are loaded from the sonar-project.properties file.
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=adminAdditionally, Instead of passing sonar.password and sonar.login as CLI arguments, these parameters can be configured from sonar-project.properties as shown below:
sonar.login=admin
sonar.password=adminFor more information, refer to the [Code quality page][].
JHipster generates a number of Docker Compose configuration files in the src/main/docker/ folder to launch required third party services.
For example, to start required services in Docker containers, run:
docker compose -f src/main/docker/services.yml up -dTo stop and remove the containers, run:
docker compose -f src/main/docker/services.yml downSpring Docker Compose Integration is enabled by default. It's possible to disable it in application.yml:
spring:
...
docker:
compose:
enabled: falseYou can also fully dockerize your application and all the services that it depends on. To achieve this, first build a Docker image of your app by running:
npm run java:dockerOr build an arm64 Docker image when using an arm64 processor OS, i.e., Apple Silicon chips (M*), running:
npm run java:docker:arm64Then run:
docker compose -f src/main/docker/app.yml up -dFor more information refer to Docker and Docker-Compose, this page also contains information on the Docker Compose sub-generator (jhipster docker-compose), which is able to generate Docker configurations for one or several JHipster applications.
To configure CI for your project, run the ci-cd sub-generator (jhipster ci-cd), this will let you generate configuration files for a number of Continuous Integration systems. Consult the Setting up Continuous Integration page for more information.