You need to sign in to do that
Don't have an account?
Kazuki Kawamura
sandboxから本番環境移行時の検証にて生じるコードカバー率エラー
お世話になっております。
表題の件についてご教示頂きたく思い、質問させて頂きました。
現在、ある1つのクラスのデプロイを試みています。
sandbox環境でテストを実行すると、コードカバー率が88%なのですが本番環境の検証では、66%となりコードカバー率エラーとなります。
テストコードを変更して、sandbox環境でのコードカバー率が77%や0%になった場合にも、本番環境の検証のコードカバー率は66%のままです。
本番環境の検証の際のコードカバー率とは、私が作成したテストクラスでのコードカバー率とは別物なのでしょうか。
もし、ご存知でしたら教えて頂けたら幸いです。
表題の件についてご教示頂きたく思い、質問させて頂きました。
現在、ある1つのクラスのデプロイを試みています。
sandbox環境でテストを実行すると、コードカバー率が88%なのですが本番環境の検証では、66%となりコードカバー率エラーとなります。
テストコードを変更して、sandbox環境でのコードカバー率が77%や0%になった場合にも、本番環境の検証のコードカバー率は66%のままです。
本番環境の検証の際のコードカバー率とは、私が作成したテストクラスでのコードカバー率とは別物なのでしょうか。
もし、ご存知でしたら教えて頂けたら幸いです。
こんにちは。
本番へのデプロイは全テスト結果のコードカバー率が75%以上でないとデプロイができません。
Sandboxのコードカバー率はテストクラス実行後の該当クラス単体で88%でしょうか?
Sandbox組織の全体テストコードカバー率で88%でしょうか?
前者でしたら、他のテストクラスが原因で全体カバー率が下がっている可能性があります。
・Sandboxと本番の全クラス、テストクラスが同じものであるか
・SandboxのApexテスト実行で全テストクラスを実行したコードカバー率が75%以上か確認
後者でしたら
・テストクラスもデプロイされているか
・検証で該当テストが実行されているか(エラーになっていないか)
をご確認ください。
また、Sandboxで頻繁にテストを実行しているとまれに正しいコードカバー率にならない事が過去ありました。
一度履歴等をクリーンアップして再実行する事をお勧めします。
設定>開発>Apexテスト実行>テスト履歴を表示>テストデータをクリア
All Answers
To avoid this:
- Ensure that all classes/ triggers have above 75% code coverage
- All classes should be valid. (Re compiled )
- If the production coverage is going down because of the test classes, which is coming in Dev console
- Please follow the Tooling API for that: Why is a Test class evaluated as part of the Organization’s Code Coverage?
- https://help.salesforce.com/articleView?id=Why-is-a-Test-class-evaluated-as-part-of-the-Organization-s-Code-Coverage&type=1
Please refer the below link for reference.- https://help.salesforce.com/articleView?id=000199415&type=1
I hope it will be helpful.Please mark it as best Answer if the information is informative.
BestRegards
RahulKumar
またリリースしようとしたクラスのテストカバー率が低い場合、それによって本番環境のカバー率が下がることがあります。
今回の件には影響なかったと思いますがまれに組織のカバー率が正しく表示されないことがあります。設定のApexテストですべてのテストを実行を行うと正しいカバー率が表示されるようになったと思います。(たしか開発者コンソールのすべてのテスト実行ではだめだったと思います。)
Let me ask 2 questions for your answer, “apex code and the test class have 100% code coverage”
Can I check the overall code coverage of other existing components in production?
Thank you for giving me the link but I cannot see because of 404.
Can you send again?
>まず本番環境とSandbox環境で同期が取れていないことがあります。
申し訳ありません、同期がとれていないとはどういった意味でしょうか。
添付した図の通り、緑色の矢印が現れたら同期が取れているという理解で宜しいでしょうか。
>またリリースしようとしたクラスのテストカバー率が低い場合、それによって本番環境のカバー率が下がることがあります。
ありがとうございます。今回リリースしようとしたクラス(APEXクラス1つ)のコードカバー率は、88%なので大丈夫だと考えているのですがsandboxでのテストカバー率とデプロイ時のテストカバー率は違うものなのでしょうか。
何度も質問して恐縮ですが、ご教示頂けたら幸いです。
こんにちは。
本番へのデプロイは全テスト結果のコードカバー率が75%以上でないとデプロイができません。
Sandboxのコードカバー率はテストクラス実行後の該当クラス単体で88%でしょうか?
Sandbox組織の全体テストコードカバー率で88%でしょうか?
前者でしたら、他のテストクラスが原因で全体カバー率が下がっている可能性があります。
・Sandboxと本番の全クラス、テストクラスが同じものであるか
・SandboxのApexテスト実行で全テストクラスを実行したコードカバー率が75%以上か確認
後者でしたら
・テストクラスもデプロイされているか
・検証で該当テストが実行されているか(エラーになっていないか)
をご確認ください。
また、Sandboxで頻繁にテストを実行しているとまれに正しいコードカバー率にならない事が過去ありました。
一度履歴等をクリーンアップして再実行する事をお勧めします。
設定>開発>Apexテスト実行>テスト履歴を表示>テストデータをクリア
>Sandboxのコードカバー率はテストクラス実行後の該当クラス単体で88%でしょうか?
全クラス(overall)のコードカバー率は、80%で該当クラス単体が88%です。
>テストクラスもデプロイされているか
本番環境にテストクラスをデプロイしないといけないのですね。
勉強不足で、申し訳ありません。テストクラスを本番環境にデプロイしておりませんでした。
テストクラスと共にデプロイすると、他のエラーが表示されましたがコードカバー率の問題は解決しました。
みなさま、本当にありがとうございました。