2016-04-29 20 views
1

JenkinsでButbucketから有益なブランチをクローンするMavenプロジェクトを作成しましたので、Selenium TestNGスクリプトを実行できます。私は、クリーンビルドを行うためにワークスペースを拭いてみましたが、以前と同じエラーが発生しました。また、jenkinsワークスペースの各モジュールがpom.xmlファイルであるかどうかを確認しましたが、それらはすべて存在しています。コンソールからエラーレポートのイメージをクリックします。 JenkinsとEclipseの両方が、同じプロジェクトフォルダにあるときに、自分の依存関係のpom.xmlファイルを見つけることができない理由を理解できません。複数のモジュールを持つMavenプロジェクトがモジュールのpom.xmlを見つけることができません - Jenkins/Eclipse

Image: Jenkins Console Output

の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> 

<parent> 
    <artifactId>PSWebTestFramework</artifactId> 
    <groupId>com.guidewire.pstesting</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

<artifactId>pswtf-test-tp-pc</artifactId> 

<dependencies> 
    <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.8.21</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-all</artifactId> 
     <version>1.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>2.53.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-application-core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-test-core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-test-tp-core</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-application-tp-pc</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.guidewire.pstesting</groupId> 
     <artifactId>pswtf-application-ootb-pc</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
</dependencies> 

<build> 
    <defaultGoal>test</defaultGoal> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
      <configuration> 
       <excludes>META-INF/*.SF</excludes> 
       <excludes>META-INF/*.DSA</excludes> 
       <excludes>META-INF/*.RSA</excludes> 
       <argLine>-Dorg.uncommons.reportng.escape-output=false</argLine> <!-- get html in reports rather than string --> 
       <properties> 
        <property> 
         <name>usedefaultlisteners</name> 
         <value>false</value> <!-- disabling default listeners is optional --> 
        </property> 
        <property> 
         <name>listener</name> 
         <value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter, org.testng.reporters.XMLReporter</value> 
        </property> 
       </properties> 
       <additionalClasspathElements> 
        <additionalClasspathElement>${basedir}/src/test/conf</additionalClasspathElement> 
        <additionalClasspathElement>${basedir}/src/test/testdata</additionalClasspathElement> 
       </additionalClasspathElements> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
</project> 

UPDATE: I以下のソリューションに基づき、以下の画像に応じて私の仕事の設定を変更し、私の代わりに、障害の成功を得ることができました。

Image: Job Configuration

答えて

1

あなたは添付のスクリーンショットの誤差がアーティファクトID「pswtfテスト-TP-pcは、」ローカルのMavenリポジトリで依存関係を見つけることができないことを意味します。

maven <modules>タグを使用して親POMからすべてのプロジェクトをビルドします。アーティファクトID PSWebTestFrameworkを持つ親フォルダのpom.xmlにこれを追加します。プロジェクトから最初にして、この親ポンポンを実行します - pswtfテスト-TP-PC

<modules> 
    <module>pswtf-application-core</module> 
    <module>pswtf-test-core</module> 
    <module>pswtf-test-tp-core</module> 
    <module>pswtf-application-tp-pc</module> 
</modules> 

これは、各モジュールを構築し、ローカルのMavenリポジトリでそれをインストールする必要があります。

P.S. - ローカルリポジトリに依存関係をインストールするには、mvn clean installコマンドを使用します。

+0

私はすでに親のpom.xmlファイルにmodulesタグを持っており、そのコマンドを成功裏に使ってみました。結果として、testng例外が発生します。これは、セレニウムスクリプトの実行を開始したことを意味しますが、ロードするtestng.xmlファイルがない場合は失敗します。 –

+0

助けてくれてありがとう。 Jenkinsのゴールに「クリーンインストール」を追加し、ビルドが成功しました。 –

関連する問題