Home Explore Blog CI



docker

1st chunk of `content/guides/angular/run-tests.md`
e8180df449ffdacd00e1436e9e103f786aa5fb7433608308000000010000094f
---
title: Run Angular tests in a container
linkTitle: Run your tests
weight: 40
keywords: angular, test, jasmine
description: Learn how to run your Angular tests in a container.

---

## Prerequisites

Complete all the previous sections of this guide, starting with [Containerize Angular application](containerize.md).

## Overview

Testing is a critical part of the development process. In this section, you'll learn how to:

- Run Jasmine unit tests using the Angular CLI inside a Docker container.
- Use Docker Compose to isolate your test environment.
- Ensure consistency between local and container-based testing.


The `docker-angular-sample` project comes pre-configured with Jasmine, so you can get started quickly without extra setup.

---

## Run tests during development

The `docker-angular-sample` application includes a sample test file at the following location:

```console
$ src/app/app.component.spec.ts
```

This test uses Jasmine to validate the AppComponent logic.

### Step 1: Update compose.yaml

Add a new service named `angular-test` to your `compose.yaml` file. This service allows you to run your test suite in an isolated, containerized environment.

```yaml {hl_lines="22-26",linenos=true}
services:
  angular-dev:
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "5173:5173"
    develop:
      watch:
        - action: sync
          path: .
          target: /app

  angular-prod:
    build:
      context: .
      dockerfile: Dockerfile
    image: docker-angular-sample
    ports:
      - "8080:8080"

  angular-test:
    build:
      context: .
      dockerfile: Dockerfile.dev
    command: ["npm", "run", "test"]

```

The angular-test service reuses the same `Dockerfile.dev` used for [development](develop.md) and overrides the default command to run tests with `npm run test`. This setup ensures a consistent test environment that matches your local development configuration.


After completing the previous steps, your project directory should contain the following files:

```text
├── docker-angular-sample/
│ ├── Dockerfile
│ ├── Dockerfile.dev
│ ├── .dockerignore
│ ├── compose.yaml
│ ├── nginx.conf
│ └── README.Docker.md
```

### Step 2: Run the tests

To execute your test suite inside the container, run the following command from your project root:

Title: Running Angular Tests in a Docker Container
Summary
This section guides you through running Jasmine unit tests for an Angular application inside a Docker container. It covers setting up a Docker Compose service to isolate the test environment and ensuring consistency between local and container-based testing. The guide walks through updating the `compose.yaml` file to include an `angular-test` service that reuses the `Dockerfile.dev` and overrides the default command to run tests using `npm run test`.