0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Github ActionsでSpring Bootのテストコードを検証する

Posted at

GitHub Actions上でドッカ―コンテナを起動し、Spring Bootのテストコードを検証する流れについて説明します。

GitHub Actionsのワークフロー作成

リポジトリのルートディレクトリにディレクトリ.github/workflowsを作成し、.ymlファイルを作成します。
.ymlファイル名は何でもOKです。

name: Testing Spring Boot Code On Github Actions

on:
  push:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v2
      - run: docker-compose up --abort-on-container-exit
      - if: success()
        run: echo success
      - if: failure()
        run: echo failure
  • docker-composeを実行するときに--abort-on-container-exitオプションをつけて、テストが失敗し、exit codeが1になったらコンテナを停止させるようにします。
  • if: success():テストが成功して、ステータスがsuccessだったら、echo successを実行します。
  • if: failure():テストが失敗して、ステータスがfailureだったら、echo failureを実行します。

DockerfileとDocker Composeを作成

Dockerfile

FROM openjdk:18-jdk-bullseye
ENV APP_HOME=/usr/app/

RUN apt update && apt upgrade -y && apt install -y curl gnupg sudo git vim wget && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /demo/home
COPY . /demo/home  

docker-compose.yml

version: '3.8'
services:
  web:
    container_name: 'web'
    build:
      context: .
    tty: true
    working_dir: '/demo/home'
    volumes:
      - .:/demo/home:cached
    ports: 
      - "8080:8080"
    entrypoint: |
      bash -e -c "
      ./gradlew test
      " 
  • entrypointにコンテナが起動されたら、テストを実施するよう./gradlew testを書き込みます。

実行

簡単なテストコードを作成し、Github Actions上で検証してみます。

テスト成功

テストコード

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.assertEquals;

@SpringBootTest
class DemoApplicationTests {

	@Test
	void testCodeOnGithubActions() {
		assertEquals(1, 1);
	}

}

結果

image.png

テスト失敗

テストコード

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.assertEquals;

@SpringBootTest
class DemoApplicationTests {

	@Test
	void testCodeOnGithubActions() {
		assertEquals(1, 0);
	}

}

結果

image.png
image.png

最後に

詳細のコードはこちらをご参考にしてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?