【Apex】リリース時にコードカバー率が激減するSalesforce2020.01.21Sandboxから本番へのリリースでハマったのでメモです。SandboxでApexクラスを改修しそれを本番にリリースしようとしたら、コードカバー率が激減しました。リリース時にコードカバー率が減少することは稀にあるのですが、今回は激減です。Sandboxでは90%近いのに本番では10%くらいまで減っています。何よりも困ったのがコードカバー率以外のエラーが出ない・・リリース内容に問題があったりして結果的にテストクラスが実行できない(コードカバー率0%)というのはよくあります。いう場合はエラー内容が出るので、それを手掛かりに見直しします。今回の場合はエラー内容が出ないし、コードカバー率も0%ではないので、少なくともテストクラスは実行されています。Sandboxでテスト実行した時と異なる実行結果となっている。結論として何が原因だったかというと、Sandboxと本番のプロファイル設定に差異があったというものでした。今回のリリースは既にリリース済みのApexクラスへの上書きだったので、リリースセットにプロファイルは含めていませんでした。具体的な差異は、レコードタイプのデフォルトです。テストクラスでテストデータを登録する時にレコードタイプの指定がなかったので、プロファイルの設定に依存してレコードが登録されてしまった。→その後の抽出処理で想定した動きとならなかった。エラー内容が出ないのにコードカバー率が激減するという事象は初めてだったので、原因解明にすごく難儀しました・・・最初はリリースセットやテストクラスに問題があるのかと思いましたが、結果としては全然検討違いな原因でした。今後の教訓としては、リリース時にコードカバー率が激減する時はSandboxと本番の(プロファイルを含めた)設定差異を疑えということですね。コピーガワタリをフォローするガワタリガワタリ.com関連記事Salesforce【Apex】Javaのプロパティファイルみたいに定数を外出しする方法コードの中に設定情報などをベタ書きしてしまうと、その情報が変わった際にコードの書き換えはもちろん、コンパイルや再リリースが発生してしまいます。コンストラクタでDMLの実行はできない。初期表示時にオブジェクトのレコードをupdateする画面を作ったら、update実行のところでエラーが発生。結論から言うと、ControllerクラスのコンストラクタでDM...Salesforce【Apex】関連オブジェクトのupdate。別にselectし直さなくても良い。主従関係)オブジェクトもついでに更新するという場面はけっこうあると思います。取引先の例で...Salesforce【Salesforce】入力規則が期待通りに判定されない→beforeトリガのせいかも入力規則で項目が未入力であることを判定する場合、下記のように数式を書きます。これがなぜか期待通りに判定されない。エラーの内容はこんな感じです。use...Salesforce【Salesforce】個人取引先の有効化。ヘルプで分かりづらかったところをメモ。個人取引先が有効になった組織で開発したコトはありましたが、自分で有効化したことはありませんでした。いざ有効化しようとしたら色々と想定していた感じと違かったのでメモ。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Google1ガワタリIT業界歴10年以上のシステム・エンジニア。現在はフリーランスやってます。【Visualforce】inputFieldを非活性にする(readonly、disabled)2020.01.29【Apex】文字列のバイト数をカウント。SJISで・・2020.01.27【Visualforce】csv出力で、出力ファイルにscriptが吐かれる。SfdcApp.Visualforce.viewstate.ViewstateSender.sendViewstate2020.01.27【Salesforce】レコードIDは15桁だと大文字、小文字を区別する。Server】sqlcmdが使えない。VBA】Excelマクロをアドイン化する方法。2019.06.172019.09.05【VBA】CSV読み込み。カンマを含む文字データをsplitで分割する。2019.07.282019.09.04【Salesforce】作成したカスタムオブジェクトのタブ表示ができない。カスタムタブの作成2019.05.052019.09.05【Apex+Visualforce】標準コントローラの拡張をやってみた。アクションの追加と上書き。Google1ガワタリIT業界歴10年以上のシステム・エンジニア。現在はフリーランスやってます。【Visualforce】inputFieldを非活性にする(readonly、disabled)2020.01.29【Apex】文字列のバイト数をカウント。SJISで・・2020.01.27【Visualforce】csv出力で、出力ファイルにscriptが吐かれる。SfdcApp.Visualforce.viewstate.ViewstateSender.sendViewstate2020.01.27【Salesforce】レコードIDは15桁だと大文字、小文字を区別する。Server】sqlcmdが使えない。VBA】Excelマクロをアドイン化する方法。2019.06.172019.09.05【VBA】CSV読み込み。カンマを含む文字データをsplitで分割する。2019.07.282019.09.04【Salesforce】作成したカスタムオブジェクトのタブ表示ができない。カスタムタブの作成2019.05.052019.09.05【Apex+Visualforce】標準コントローラの拡張をやってみた。アクションの追加と上書き。2019.05.082019.09.05タイトルとURLをコピーしました。