« Salesforce1 Webinar セキュリティ&プッシュ通知編 | メイン | Visualforce Remote Objectsを使ったデータ取得 »

2014年5月27日 (火)

コードカバー率が正常に表示されない件について

エンジニアの川名です。

現在、私が運用を担当している組織にて、
Apexコードカバー率が正常に表示されない現象が発生しているため
これについてまとめたいと思います。


Salesforceではテストコードのカバー率が75%以上ないと本番組織にリリースする事ができません。
そのため組織全体のコードカバー率のチェックは本番リリースの際には欠かせない作業となっています。

ある日の本番リリース後、念のため本番組織のコードカバー率も確認しておこうと
[設定]→[開発]→[Apexクラス]と進んだApex一覧の画面の
「組織のコードカバー率を見積る」を押下したところ、なんと…!

Codecoverage_2

58%という目を疑うような数字が表示されました。

実は本番リリースに失敗しているのではないかとちょっと慌てて
リリース対象物を確認しましたが正常にデプロイされている様子。

これはおかしい。ということでサポートに問い合わせて現象について確認しました。
回答は以下。

・Winter'14以降で発生している不具合。
・テストクラスを持たないApexクラスの場合、コメントアウトや System.debug() などのコードもカバー率の母数に含まれてしまい、
 本来のカバー率よりも低い数字が表示されてしまっている。
・デプロイ時のコードカバレッジの算出はこの影響を受けていないため正常なカバレッジでデプロイが行われる。

とのことでした。


回避策として、すべてのApexクラスに対してテストクラスを作成することで正常なカバー率が算出されるようです。

以下でもケースとして上がっていました。
Summer'14でバグフィクス予定のようです。

Drop in Overal Code Coverage value due to incorrect count of class lines with 0% code coverage

https://success.salesforce.com/issues_view?id=a1p30000000T1m1


有効な行数がそもそも少ないクラスや大部分がコメントアウトされたクラスなどは
テストクラスの作成が後回しになってしまいがちですが、

・不要なクラスは本番組織に残しておかない。
・有効なクラスに対してはテストクラスを必ず作成する。

など、日頃から気をつけることが必要であると今回の件で感じました。

○おまけ

リリース関連の小ネタです。

本番リリースする際、リリース状況を確認することが出来ましたが
画面の更新を行いながら進捗をチェックする必要がありました。

Spring'14より、リリース状況を表すプログレスグラフが自動更新されるようになりました。
[設定]→[リリース]→[リリース状況]から確認することが出来ます。

Releasestatus

細かいですがリリース担当者としては地味に嬉しい機能ですね。

トラックバック

このページのトラックバックURL:
http://bb.lekumo.jp/t/trackback/493401/32271163

コードカバー率が正常に表示されない件についてを参照しているブログ:

コメント

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。

採用情報

株式会社フレクトでは、事業拡大のため、
・Salesforce/Force.comのアプリケーション開発
・HerokuやAWSなどのクラウドプラットフォーム上
でのWebアプリケーション開発
エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみたい方、
是非ご応募下さい。

フレクト採用ページへ

会社紹介

  • 株式会社フレクトは、
      ・認定コンサルタント
      ・認定上級デベロッパー
      ・認定デベロッパー
    が在籍している、セールスフォースパートナーです。
    また、heroku partnersにも登録されています。
    herokuパートナー
    株式会社フレクト
    Salesforce/Force.com
    導入支援サービス
    弊社の認定プロフェッショナルが支援致します。
    ・Visualforce/Apexによるアプリ開発
    ・Salesforceと連携するWebアプリ開発
    も承っております。
    セールスフォースご検討の際は、
    お気軽にお問合せください。

Twitter

リファレンス

■Developer's Guide(リファレンス)
・Apex  HTML | PDF | 日本語PDF | ガバナ制限
・Visualforce  HTML | PDF
・Web Services API  HTML | PDF | 日本語PDF
・Bulk API  HTML | PDF
・REST API  HTML | PDF | 日本語PDF
・Metadata API  HTML | PDF
・Migration Tool  HTML | PDF
・AJAX Toolkit  HTML | PDF
・Data Loader PDF | 日本語PDF

■早見表 (日本語)
数式
Apex
Visualforce
Web Services API
Chatter