Jenkinsユーザードキュメント(テスト結果とワークを記録)
2564 ワード
テスト結果とワークピースの記録
テストは良好な継続的なパイプラインの重要な部分ですが、多くの人は数千行のコンソールをフィルタして失敗したテストに関する情報を検索することを望んでいません.これを容易にするために、Jenkinsはテスト結果を記録し、要約することができます.テストオペレータがテスト結果ファイルを出力できる限り.Jenkinsは通常、junit
ステップにバンドルされていますが、JUnitスタイルのXMLレポートをテストオペレータが出力できない場合は、ほとんど広く使用されているテストレポートフォーマットを処理できるプラグインもあります.
テスト結果とワークを収集するには、post
部を使用します.Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Test') {
steps {
sh './gradlew check'
}
}
}
post {
always {
junit 'build/reports/**/*.xml'
}
}
}
スクリプトパイプ(詳細):Jenkinsfile (Scripted Pipeline)
node {
try {
stage('Test') {
sh './gradlew check'
}
} finally {
junit 'build/reports/**/*.xml'
}
}
これは、Jenkinsに追跡させ、トレンドを計算して報告するテスト結果を常にキャプチャします.失敗したテストを持つパイプは「不安定」とマークされ、Web UIでは黄色で表示されます.これは「失敗」の状態とは異なり、赤で表示されます.
テストに失敗した場合、Jenkinsから構築されたワークピースを取得してローカル分析と調査を行うことは、通常便利です.Jenkinsの「ワークピース」の格納に対する組み込みサポートは、パイプの実行中に生成されたファイルを確実に実行することができます.
これは、次の例に示すように、archiveArtifacts
ステップとファイルワイルドカード式で簡単に実行できます.enkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('Test') {
steps {
sh './gradlew check'
}
}
}
post {
always {
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
junit 'build/reports/**/*.xml'
}
}
}
スクリプトパイプ(詳細):Jenkinsfile (Scripted Pipeline)
node {
try {
stage('Test') {
sh './gradlew check'
}
} finally {
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
junit 'build/reports/**/*.xml'
}
}
archiveArtifacts
ステップで複数のパラメータが指定されている場合は、各パラメータの名前、すなわちワークに使用されるartifacts
のパスとファイル名、およびfingerprint
をステップコードで明確に指定して選択する必要があります.ワークのパスとファイル名のみを指定する必要がある場合は、パラメータ名artifacts
、例えばarchiveArtifacts 'build/libs/**/*.jar'
を省略できます.
Jenkinsでテストとワークピースを記録することは、チームの各メンバーに迅速かつ簡単に情報を表示するのに役立ちます.次のセクションでは、チームメンバーにパイプで何が起こったのかをどのように伝えるかについて説明します.
下一篇:環境変数を使う
上一篇:整理と通知
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Test') {
steps {
sh './gradlew check'
}
}
}
post {
always {
junit 'build/reports/**/*.xml'
}
}
}
Jenkinsfile (Scripted Pipeline)
node {
try {
stage('Test') {
sh './gradlew check'
}
} finally {
junit 'build/reports/**/*.xml'
}
}
enkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew build'
}
}
stage('Test') {
steps {
sh './gradlew check'
}
}
}
post {
always {
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
junit 'build/reports/**/*.xml'
}
}
}
Jenkinsfile (Scripted Pipeline)
node {
try {
stage('Test') {
sh './gradlew check'
}
} finally {
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
junit 'build/reports/**/*.xml'
}
}