14
22

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.

JUnit5を利用するためのMavenの設定

Last updated at Posted at 2019-01-06

このページの設定は古くなっており、JUnit公式のサンプルコードの pom.xml (Gradleなら build.gradle) ファイルの内容がよりシンプルになっているのでそちらを参照してください。

MavenプロジェクトでJUnit5を利用するための設定に関する自分用メモ(2019.1.6時点)
アノテーションやテストコードの書き方は説明しないので、こちらを参照すること

pom.xml

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>myTest</groupId>
    <artifactId>myTest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>11</java.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.3.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.3.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

JUnit5を動かすための最低条件

dependency(ライブラリー)

Junit Jupiter(org.junit.jupiter)の2つのモジュールを定義すれば、最低限Junit5でテストを書いて実行できる

  • junit-jupiter-api -> アノテーションや基本的なアサーション(assertEquals/assertTrueなど)記述する
  • junit-jupiter-engine -> テストを実行する

plugin

maven-surefire-pluginのver 2.22.0以降を使う。

*IDEでテストを実行するときは不要だが、mavenでtestを実行するときはsurefireプラグインが無いと、テストを実行しない。

その他の機能

アサーションライブラリ

assertThatやMatcherなどのアサーション機能を使いたい場合は、独自にサードパーティのアサーションライブラリ(AssertJ,Hamcrestなど)を追加する。

pom.xml
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>3.11.1</version>
            <scope>test</scope>
        </dependency>

パラメタライズドテスト

@ParametaraizedTestなどを利用したい場合は、juit-jupiter-paramsを追加することで利用できる。

pom.xml
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.3.2</version>
            <scope>test</scope>
        </dependency>

IntelliJ IDEAでの実行

最新バージョン(執筆時点で2018.3)の場合、junit-jupiter-apiだけ定義すれば良い。
その他のIDEでJUnit5を実行するために必要なライブラリ(junit-platform-launcher, junit-jupiter-engine, and junit-vintage-engine)は、バンドルされているため、実行バージョンを変えたい時だけ定義すれば良い。

参考

JUnit 5 User Guide
JUnit 4で消耗しているあなたに贈るJUnit 5入門
JUnit5メモ(Hishidama's JUnit5 Memo)
junit5-samples/junit5-jupiter-starter-maven/

14
22
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
14
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?