2017-05-28 10 views
1

Jenkins Pipeline Shared Groovy Libraryで使用されているコードの単体テストを実装しています。具体的には、のインスタンスであるJenkinsfileのstepsオブジェクトをモックする必要があります。私のGradleビルドでは、次のような依存関係を指定しています。Jenkins Pipeline - Workflow CPS Plugin JARの依存関係

testCompile group: 'org.jenkins-ci.plugins.workflow', name: 'workflow-cps', version: '2.30', ext: 'jar' 

これは上記のクラスをホストするプロジェクトです。 extをJARとして指定しないと、Gradleは.hpiファイルを取得します。これはプロジェクトのpom.xmlに定義されているパッケージであるためです。明らかに私はこれをオーバーライドして、プロジェクトのJARを取得する必要があります。しかし、このGradleを実行すると、workflow-cps JARの推移的な依存関係はダウンロードされず、build.gradleに試行錯誤を経て決定されたすべての依存関係が設定されていました。推移的な依存関係を取得する方法はありますか、これはワークフロー-cpsプロジェクトの制限とpom.xmlの定義方法ですか?

+0

どのテストフレームワークを使用していますか? – stigsb

+0

私はSpockを使用しています。私は 'vars'ディレクトリを非常に軽くして、' src'に複雑なロジックを追加しました。標準的な単体テストでライブラリをテストすることができます。 – Boon

答えて

0

あなたがモックしたいCPSクラスには、プラグインやワークフローlibによって導入されたメソッド/変数が含まれていないので、このアプローチはおそらく完全には満足できません。

同じ問題に直面して、テストソースとMockで自分のTestScriptインターフェイスを作成し、クラスにスクリプトリファレンスを入力しないという実用的なアプローチを採用しました。

欠点は、スクリプトを参照するもののIDEコード検査がなく、テストを追加するときに手動でTestScriptにシグネチャを追加する必要があることです(これらのシグネチャが一致することを手動で確認しているためエラーが発生しやすくなります)。

しかし、それは動作し、プラグイン依存関係地獄にドラッグを避ける。

関連する問題