0

JUnit 5 ドキュメントを読んだ後、私は混乱しています

Junit 自動拡張登録

具体的には、カスタム拡張を登録するには、それを囲む JAR ファイルの /META-INF/services フォルダー内の org.junit.jupiter.api.extension.Extension という名前のファイルに完全修飾クラス名を指定します。

私のプロジェクトで作成する必要があるフォルダーとは何か、それらのファイルとフォルダーを保持する必要がある場所、および拡張ファイルの拡張子 (.txt、.properties、または .java) を誰かに説明してもらえますか?

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>org.example</groupId>
<artifactId>JUnitTempDemo</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
</properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-runner</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

    </dependencies>
4

1 に答える 1

2

標準の Maven プロジェクト サービスの登録では、フォルダー内にあります。

/src/main/resources/META-INF/services

したがって、このディレクトリにはorg.junit.jupiter.api.extension.Extension、コンテンツで呼び出されるファイルがあります。

your.project.junit5.extension.ExtensionImplementation

クラスmy.project.junit5.extension.ExtensionImplementationは、1 つ以上の JUnit-Jupiter の拡張フックの実装である必要があります。

ただし、それはグローバル拡張のみです。さまざまな種類の Jupiter 拡張機能については、https ://junit.org/junit5/docs/snapshot/user-guide/#extensions で説明しています。

于 2022-01-12T15:21:59.800 に答える