2012-02-13 9 views
2

ビルドヘルパー-maven-pluginを、標準的でないツリーフォルダを持つレガシープロジェクトに使用します。build-helper-maven-pluginとマルチモジュールを使用するとテストがスキップされます

私はそれをこのように使用します。

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>add-source</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>add-source</goal> 
        </goals> 
        <configuration> 
         <sources> 
          <source>${basedir}/firstmodule/src</source> 
          <source>${basedir}/secondmodule/src</source> 
         </sources> 
        </configuration> 
       </execution> 
       <execution> 
        <id>add-test-source</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>add-test-source</goal> 
        </goals> 
        <configuration> 
         <sources> 
          <source>${basedir}/firstmodule/tests</source> 
          <source>${basedir}/secondmodule/tests</source> 
                 </sources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

私はMVNプロジェクトのルートにインストールし起動する場合、それが正常に動作しますが、テストは合格しました。

しかし、このプロジェクトは、より大きなプロジェクトのサブモジュールです。 親プロジェクトのルートフォルダにmvn installを起動した場合、mavenはテストを実行しません。

動作するようですが、確実なすべてのテストは検出されません。

[INFO] Building MyLegacyProject 
[INFO] task-segment: [clean, install] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [clean:clean {execution: default-clean}] 
[INFO] Deleting directory C:\DEV\perforce\1992\depot\MyProject\release\BUG_FIXING\MyLegacyProject\target 
[INFO] [build-helper:add-source {execution: add-source}] 
[INFO] Source directory: C:\DEV\perforce\1992\depot\MyProject\release\BUG_FIXING\MyLegacyProject\firstmodule\src added. 
[INFO] Source directory: C:\DEV\perforce\1992\depot\MyProject\release\BUG_FIXING\MyLegacyProject\secondmodule\src added. 
[INFO] [build-helper:add-test-source {execution: add-test-source}] 
[INFO] Test Source directory: C:\DEV\perforce\1992\depot\MyProject\release\BUG_FIXING\MyLegacyProject\firstmodule\tests added. 
[INFO] Test Source directory: C:\DEV\perforce\1992\depot\MyProject\release\BUG_FIXING\MyLegacyProject\secondmodule\tests added. 
[debug] execute contextualize 
[INFO] [resources:resources {execution: default-resources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 40 resources 
[INFO] Copying 40 resources 
[WARNING] While downloading com.sun.xml:saaj-impl:1.3 
    This artifact has been relocated to com.sun.xml.messaging.saaj:saaj-impl:1.3. 


[WARNING] While downloading javax.xml:jaxb-api:2.1 
    This artifact has been relocated to javax.xml.bind:jaxb-api:2.1. 


[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Compiling 752 source files to C:\DEV\perforce\1992\depot\MyProject\release\BUG_FIXING\MyLegacyProject\target\classes 
[debug] execute contextualize 
[INFO] [resources:testResources {execution: default-testResources}] 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 2 resources 
[INFO] Copying 34 resources 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] Compiling 15 source files to C:\DEV\perforce\1992\depot\MyLegacyProject\release\BUG_FIXING\MyLegacyProject\target\test-classes 
[INFO] [surefire:test {execution: default-test}] 
[INFO] Surefire report directory: C:\DEV\perforce\1992\depot\MyLegacyProject\release\BUG_FIXING\MyLegacyProject\target\surefire-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running TestSuite 
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.381 sec 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

にこの作品を作ったためにどのように任意のアイデアを?

+0

まあ、15のテストクラスがコンパイルされました。あなたはカスタマイズされた確実な設定をしていますか? – Raghuram

+0

いいえ、surefireが設定されていない、私はデフォルトの設定を使用しています –

答えて

0

[OK]をクリックします。私はそれを見つけました!!!

誰かが同じ問題が持っていた:それを理解するのは本当に大変でしたが https://stackoverflow.com/a/6925096/242658

これはbuild-helper-maven-pluginとは関係がありませんでした。なぜこの問題がシングルモジュールモードで発生したのかわかりません。

私は、TestNGを引っ張ったパウダーロックとパウダーロックを使用しました。そしてtestngで私のテストは確実には検出されません。だから私はtestngを除外しなければならなかった:

<dependency> 
    <groupId>org.powermock</groupId> 
    <artifactId>powermock-mockito-release-full</artifactId> 
    <version>1.4.9</version> 
    <classifier>full</classifier> 
    <exclusions> 
    <exclusion> 
     <artifactId>powermock-module-testng</artifactId> 
     <groupId>org.powermock</groupId> 
    </exclusion> 
    </exclusions> 
</dependency> 
0

デバッグモード(-X)でmvnを起動して、surefireが使用するプロパティがツリーフォルダに対して正しいかどうかを確認してください。

0

Maven 3を使用していますか? $ {basedir}はmaven 3だけで認識されます(そして、maven 2 :()によって暗黙に無視されます) basedirの使い方をどのように理解していますか?これはビルドが開始されたPOMのディレクトリパスです。プロジェクトのルートディレクトリへのパスをいつも持っていると思われますか?

+0

私はmaven2を使用しています。私はシンプルなプロジェクトで再現しようとするいくつかのコードをコミットしました:https://bitbucket.org/hlassiege/maven-build-helper/srcしかしこのサンプルではうまくいきます。私は "実生活"プロジェクトとの違いを理解しようとしました。そして、basedirについて、私は最初にそれを試しましたが、私はパスの問題を疑っていました。だから、私はまともにbasedirを試みました。エマヌエル=ベニス –

関連する問題