Pipelines のテスト レポート
ビルドで失敗したテストをすばやく特定できるようになりました。失敗を含む、xUnit/JUnit との互換性を持つテスト結果がパイプラインで検出されると、テスト レポートが自動的に有効化されます。
テスト レポートの仕組み
ビルド ステップでテスト結果を生成すると、Pipelines はそれを自動的に検知し、Web インターフェイスで失敗状況を表示します。これは xUnit との互換性を持つ XML 形式のほとんどのテスト レポート (ただし xUnit.net は含まない) に対応し、それらの作成言語は問いません。
リポジトリの読み取りアクセス権を持つすべてのユーザーが、パイプラインのログ パネルでテスト結果を確認できます。テストの失敗結果が見つかった場合、ログ ビューには失敗したテストがハイライトで示され、失敗理由と、存在する場合はスタックトレースが表示されます。[ビルド] タブから完全なログ ビューを参照することもできます。
注: [テスト] タブは、レビューが必要な、失敗したテストがある場合にのみ表示されます。
テスト レポートを構成する
テスト レポートを有効化するには、ビルド テストのレポートが、次のいずれかのサポート対象の既定ロケーション (ディレクトリの階層は 3 レベル) に生成されることを確認します。
./**/surefire-reports/**/*.xml
./**/failsafe-reports/**/*.xml
./**/test-results/**/*.xml
./**/test-reports/**/*.xml
テスト レポートのファイル スキャナは、ビルドのベース ディレクトリ (/opt/atlassian/pipelines/agent/build
) から検索を開始します。
テスト ランナーを構成する
Maven Surefire / Failsafe プラグイン
Maven でビルドしたジョブで、Maven Surfire プラグインまたは Maven Failsafe プラグインを使用している場合、特別な構成は不要です。Maven のユニットまたはインテグレーション テストの終了条件が満たされると、レポートが自動的に生成されます。
Gradle
Grade ビルドの場合、xUnit との互換性を持つ XML 形式のテスト レポートが自動的に生成されます。Gradle はテスト結果を既定ロケーションの 1 つに既定で生成するため、特別な構成は不要です。
PHPUnit
PHPUnit テスト レポートの場合、テスト レポート出力を特定のロケーションに生成するには、--log-junit
パラメータを明示的に指定する必要があります。
image: php:7.1.1
pipelines:
default:
- step:
script:
- apt-get update && apt-get install -y unzip
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer require phpunit/phpunit
- vendor/bin/phpunit --log-junit ./test-reports/junit.xml
Node.js 用 Mocha
Mocha テスト フレームワークの場合、mocha-junit-reporter を使用して、テスト レポートの生成先となる出力ファイルを構成できます。
image: node:10.15.0
pipelines:
default:
- step:
script:
- npm install mocha mocha-junit-reporter --save-dev
- mocha test --reporter mocha-junit-reporter --reporter-options mochaFile=./test-reports/junit.xml
Python の Unittest
Python の Unittest フレームワークでは、テストを構成するときに unittest-xml-reporting モジュールを使用してテスト構成に XMLTestRunner
を追加できます。
import unittest
import xmlrunner
class TestExample(unittest.TestCase):
def testIsTrue(self):
self.assertTrue(True)
if __name__ == '__main__':
unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports'))
その他のテスト ランナー
その他のテスト ランナーの場合、xUnit との互換性を持つ XML 形式のテスト結果が、既定のサポート対象のロケーションのいずれかに、ビルドの一部として生成されることを確認します。