ToolingAPIはじめに皆さんこんにちは。品質改善や納期短縮の取り組みされてますか?プロジェクトに関わるメンバーがプロジェクトの品質を簡単に確認し、共有できる環境を構築できてますか?たぶん、この記事に興味をもたれた方は、このような取組みについて興味があるのではないでしょうか。今回は、テラスカイが実際に取り組んでいる品質向上策の一部、Apexテスト結果やカバレッジを表示させる方法を紹介します。Plugin」を流用しています。Jenkinsには、Salesforceのテスト結果を表示するプラグインが無いためこの方法を選択しました。この方法は、プラグインに読み込ませるXMLは自作する必要がありますので、少し、導入の難度が高いものになっています。最後に、記載する内容について、画面キャプチャーや実際のプログラムで説明したいところですが、ここでは実装する際の要点のみ書きます。システム概要JenkinsをAWSのEC2上に構築します。処理の流れは下記の通りです。JenkinsのジョブからMigrationツールとXML作成ツール(自作)のAntタスクを順に実行するMigrationツールのretrieveタスクで、ApexClassとTriggerのメタデータをダウンロードするXML作成ツールタスクを実行し、Apexテストの実行とテスト結果取得するXML作成ツールで、上記のテスト結果とメタデータの字句解析データから、JUnitとCoberturaプラグイン用の2つのXMLを作成するジョブが、正常に終了するとプラグインが作成したXMLを読み込むユーザがJenkinsにアクセスし、ジョブの詳細画面でApexテスト結果とカバレッジを確認するXML作成ツール(自作)JenkinsやMigrationツールの設定は、インターネットに情報がそろっているため説明は省き。自作のツールについて、処理内容とXMLの定義内容を書きます。処理の流れは下記の通りです。PartnerAPIでログインするToolingAPIからApexテストを実行し、テスト結果を取得するテスト結果には、メソッド毎のテストの失敗と成功のデータが格納されています。クラス名、メソッド名、所要時間、テスト結果(成功|失敗)を取得するテストが失敗の場合、更に、スタックトレースを取得するメソッド名がブランクのものは、テストの異常終了です。(実行済みに設定)を取得するテスト結果にクラス毎のカバレッジ情報が格納されています。ソースの未実行行番号を取得するテスト結果には行情報として未実行行番号しか取れません。字句分析結果をすでにすべて実行済みとして未実行行部分を上書きするテスト結果からカバレッジの警告情報を取得するXMLを作成するXML定義JUnitプラグインとCoberturaプラグインのXMLの定義内容を書きます。結果の確認ジョブが正常に終了すると、Jenkinsのジョブの詳細ページに、Apexテスト結果とカバレッジの推移グラフが表示されています。メソッドの順でドリルダウンして、詳細なメッセージを確認することができますカバレッジについてグラフの見たいリビジョンをクリックすると。ソースの順でドリルダウンして、カバレッジを確認することができますカバレッジの一覧の中に条件という項目があります。この項目はブランチカバレッジ(分岐網羅)の数値です。字句解析の実装で、行情報に分岐の情報を足すことによって出力することができますまとめXML作成ツールを実装することによって、JenkinsでApexテスト結果やカバレッジを確認できるようになりました。実際に試した方は「おおおーーー!」という感じではないでしょうか?まだまだ、プロジェクトを遂行する上で品質改善や納期短縮に関する取組みは数多くあります。マルチベンダーや大規模開発ではこうした取組みが非常に重要になってきます。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。