0

アプリケーションにいくつかの単体テストがあります。AIはそれらのプラットをスキップする必要があります。pom.xmlで、テストに特定のクラスがあるかどうかを定義しました-それからスキップします。

<profile>
  <id>skip-unit-tests</id>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.11</version>
        <configuration>
          <excludes>
            <exclude>**/*.class</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

したがって、私がpackage -Pskip-unit-testsすべてを実行すると、すべてが機能しますが、実行するとclean compile -Pskip-unit-tests test、Mavenがそれらを実行します。最後のコマンドの何が問題になっていますか?

4

3 に答える 3

2

オプションskipTestsは仕事をします:

mvn clean install -DskipTests

これにより、すべてのテストの依存関係が解決され、テストがコンパイルされますが、テストは実行されなくなります。コンパイルもスキップする必要がある場合(お勧めできません!)、次を使用してください。

mvn clean install -Dmaven.test.skip

ところで。テストの依存関係の解決を回避するオプションはありません。上記のオプションはsurefireプラグイン内に実装されており、depsが解決された後に実行されます。

maven-surefire-pluginのドキュメントでテストをスキップする方法の詳細。

于 2012-11-06T21:24:27.580 に答える
0

あなたのプロファイルをテストしましたが、問題はありません。

プロファイルなしの通常の実行:

iMac:Q13257987 maba$ mvn パッケージ
[情報] プロジェクトをスキャンしています...
[情報]                                                                         
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 建物 Q13257987-1.0-SNAPSHOT 1.0-SNAPSHOT
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 0 リソースをコピーしています
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q13257987 ---
[情報] コンパイルするものがありません - すべてのクラスが最新です
[情報]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 存在しない resourceDirectory をスキップ /Users/maba/Development/stackoverflow/java/Q13257987/src/test/resources
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ Q13257987 ---
[情報] コンパイルするものがありません - すべてのクラスが最新です
[情報]
[INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ Q13257987 ---
[INFO] Surefire レポート ディレクトリ: /Users/maba/Development/stackoverflow/java/Q13257987/target/surefire-reports

-------------------------------------------------- -----
 テスト
-------------------------------------------------- -----
com.stackoverflow.OrderTest の実行
テストの実行: 1、失敗: 0、エラー: 0、スキップ: 0、経過時間: 0.04 秒

結果 :

テストの実行: 1、失敗: 0、エラー: 0、スキップ: 0

[情報]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ Q13257987 ---
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] ビルド成功
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 合計時間: 1.655 秒
[情報] 終了: 2012 年 11 月 6 日火曜日 22:51:52 CET
[情報] ファイナルメモリー: 4M/81M
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------

結果: 1 つのテストが実行されました


プロファイルを使用してパッケージを実行します。

iMac:Q13257987 maba$ mvn package -Pskip-unit-tests
[情報] プロジェクトをスキャンしています...
[情報]                                                                         
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 建物 Q13257987-1.0-SNAPSHOT 1.0-SNAPSHOT
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 0 リソースをコピーしています
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q13257987 ---
[情報] コンパイルするものがありません - すべてのクラスが最新です
[情報]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 存在しない resourceDirectory をスキップ /Users/maba/Development/stackoverflow/java/Q13257987/src/test/resources
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ Q13257987 ---
[情報] コンパイルするものがありません - すべてのクラスが最新です
[情報]
[INFO] --- maven-surefire-plugin:2.11:test (default-test) @ Q13257987 ---
[INFO] Surefire レポート ディレクトリ: /Users/maba/Development/stackoverflow/java/Q13257987/target/surefire-reports

-------------------------------------------------- -----
 テスト
-------------------------------------------------- -----

結果 :

テストの実行: 0、失敗: 0、エラー: 0、スキップ: 0

[情報]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ Q13257987 ---
[情報] jar の構築: /Users/maba/Development/stackoverflow/java/Q13257987/target/Q13257987-1.0-SNAPSHOT.jar
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] ビルド成功
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 合計時間: 1.609 秒
[情報] 終了: 2012 年 11 月 6 日火曜日 22:49:24 CET
[情報] ファイナルメモリー: 4M/81M
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------

結果: テストは実行されませんでした


プロファイルを使用してクリーン コンパイル テストを実行します。

iMac:Q13257987 maba$ mvn clean compile -Pskip-unit-tests test
[情報] プロジェクトをスキャンしています...
[情報]                                                                         
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 建物 Q13257987-1.0-SNAPSHOT 1.0-SNAPSHOT
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ Q13257987 ---
[情報] /Users/maba/Development/stackoverflow/java/Q13257987/target を削除しています
[情報]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 0 リソースをコピーしています
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q13257987 ---
[情報] 1 つのソース ファイルを /Users/maba/Development/stackoverflow/java/Q13257987/target/classes にコンパイルしています
[情報]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 0 リソースをコピーしています
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q13257987 ---
[情報] コンパイルするものがありません - すべてのクラスが最新です
[情報]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ Q13257987 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[情報] 存在しない resourceDirectory をスキップ /Users/maba/Development/stackoverflow/java/Q13257987/src/test/resources
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ Q13257987 ---
[情報] 1 つのソース ファイルを /Users/maba/Development/stackoverflow/java/Q13257987/target/test-classes にコンパイルしています
[情報]
[INFO] --- maven-surefire-plugin:2.11:test (default-test) @ Q13257987 ---
[INFO] Surefire レポート ディレクトリ: /Users/maba/Development/stackoverflow/java/Q13257987/target/surefire-reports

-------------------------------------------------- -----
 テスト
-------------------------------------------------- -----

結果 :

テストの実行: 0、失敗: 0、エラー: 0、スキップ: 0

[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] ビルド成功
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 合計時間: 1.676 秒
[情報] 終了: 2012 年 11 月 6 日火曜日 22:54:44 CET
[INFO] ファイナルメモリー: 8M/81M
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------

結果: テストは実行されませんでした


結論として、プロファイルのセットアップは機能します。

mvn package -DskipTestsそうは言っても、すべてのテストをスキップする最も簡単な方法である代わりに使用する必要があると思います。

一方、いくつかのテストだけをスキップしたい場合は、プロファイル設定を使用できますが、JUnit Categoriesを使用することをお勧めします。カテゴリは構成で直接選択できmaven-surefire-pluginます。

于 2012-11-06T22:00:07.417 に答える
0

Maven ライフサイクル (こちらを参照) によると、テストはコンパイル後まで実行されず、パッケージ前に実行されます。したがって、あなたの構成は実際にはあなたの考えを実行していないと思います。

于 2012-11-06T21:18:27.763 に答える