web-dev-qa-db-ja.com

Mavenで実行するJUnit5タグを選択する方法

JUnit5を使用するようにソリューションをアップグレードしました。次に、@Fast@Slowの2つのタグを持つテスト用のタグを作成しようとしています。最初に、以下のmavenエントリを使用して、デフォルトのビルドで実行するテストを構成しました。これは、mvn testを実行すると、高速テストのみが実行されることを意味します。コマンドラインを使用してこれをオーバーライドできると思います。しかし、遅いテストを実行するために何を入力するのか理解できません。

私は次のようなものを想定しました....mvn test -Dmaven.IncludeTags=fast,slowこれは機能しません

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <properties>
            <includeTags>fast</includeTags>
            <excludeTags>slow</excludeTags>
        </properties>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.0.0-M3</version>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>1.0.0-M3</version>
        </dependency>
    </dependencies>
</plugin>
11

次のように使用できます。

<properties>
    <tests>fast</tests>
</properties>

<profiles>
    <profile>
        <id>allTests</id>
        <properties>
            <tests>fast,slow</tests>
        </properties>
    </profile>
</profiles>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <properties>
                    <includeTags>${tests}</includeTags>
                </properties>
            </configuration>
        </plugin>
    </plugins>
</build>

このようにして、mvn -PallTests testすべてのテストから(またはmvn -Dtests=fast,slow testからでも)開始できます。

14
Niklas P

プロファイルの使用は可能ですが、groupsexcludedGroupsmaven surefireプラグイン で定義されたユーザープロパティであり、それぞれJUnit5タグを含めたり除外したりするため必須ではありません。 (また、JUnit 4およびTestNGテストフィルタリングメカニズムでも機能します)。
したがって、slowまたはfastでタグ付けされたテストを実行するには、次のコマンドを実行できます。

mvn test -Dgroups=fast,slow

Mavenプロファイルで除外タグや包含タグを定義する場合は、それらを伝達し、Mavenのsurefireプラグインでそれらを関連付けるために新しいプロパティを宣言する必要はありません。 Mavenのsurefireプラグインによって定義および期待されるgroupsまたはexcludedGroupsを使用するだけです。

<profiles>
    <profile>
        <id>allTests</id>
        <properties>
            <groups>fast,slow</groups>
        </properties>
    </profile>
</profiles>
9
davidxxx