3

Mavenについて質問があります。

ファイル名が *Test で終わる単体テストと、ファイル名が *IT で終わる統合テストがあります。

私の理解では、surefire は単体テストを実行し、failsafe は統合テストを実行します。

実行すると: mvn clean install

単体テストと統合テストの両方が実行されます。

私が実行すると:

mvn 検証

これらのテストは両方とも実行されます。

とにかく、次を使用するときに maven を構成できる方法はありますか: mvn clean install、単体テストのみが実行されます。mvn verify を使用すると、統合テストのみが実行されますか?

POM のビルド セクションは次のとおりです。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>failsafe-maven-plugin</artifactId>
            <version>2.4.3-alpha-1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

どうもありがとう

4

2 に答える 2

1

hereで述べたように、慣例により、統合テストは で、単体テストは で名前が付けられているとしTestNameIT.javaます。これを使用して、統合テストまたは単体テストをフィルター処理TestNameUT.javaできます。includes

于 2012-04-24T16:43:36.577 に答える
0

ユニット - 統合 - Maven を使用したシステムテストのセットアップ

Maven で可能なセットアップを確認できる GitHub リポジトリを作成しました。このセットアップについての私の考えを他の人と共有したいので、これをここに投稿します。誰かが SO で maven を使用したテストについて検索すると、これが見つかると思います

リポジトリには、完全に機能するセットアップが含まれています。

GitHub リポジトリ: https://github.com/StefanHeimberg/maven3-unit_integration_systemtest-setup

特徴

  • Maven 3.3
  • 本番データベースと Systemtest データベースの DB 移行のフライウェイ
  • 統合テスト実行のための Arquillian
  • 単体テスト用の Mockito

単体テスト

  • 1 つのクラス/ビジネス関数のみがテストされます
  • データベースがありません
  • コンテナなし
  • テストする最小単位
  • 他のクラスへの依存関係はモックされます。(もっきー)
  • テストは、テスト クラスの下のユニットが存在するアーティファクトのsrc/test内にあります。

統合テスト

  • 複数のクラス/ビジネス機能がオーケストレーションされ、一緒にテストされます
  • テストケースごとのインメモリ データベース
  • EEコンテナ。すべての統合テストで 1 回開始
  • Arquillian リモート管理ワイルドフライ
  • arquillian war 内の TestCase ごとのデータソース展開 (*-ds.xml)
  • DB テーブルは JPA DDL から生成されます (hibernate.hbm2ddl.auto=create-drop)
  • Arquillian Deployments には、テストケース自体に必要なクラスのみが含まれています
  • @Test または @Before メソッド内で手動でロードされた Testdata... (テスト データ ビルダー...)
  • テストは他のコードから分離されています

システムテスト

  • 最終的な WAR/EAR ファイルの完全な Wildfly デプロイメント。
  • *.cli コマンド ライン コマンドによるコンテナー構成
  • 必要なために使用されるデータベースの読み取り (hibernate.hbm2ddl.auto=validate)
  • maven-flyway-plugin を使用したデプロイ前のデータベースのセットアップ
  • sql-maven-plugin で読み込まれたテストデータ
  • テストは他のコードから分離されています
于 2015-11-18T07:23:41.373 に答える