テストメソッドをエディターでデバックしていた時
テストデバックが失敗したようで、
以下のように言われる
有効な追跡フラグがあると、デバッグログがトリガーされます。最大 1,000 MB のデバッグログのうち 1,551 MB を保持しています。追跡フラグを編集する前に、いくつかのデバッグログを削除してください。
14:34:19.383 開始しています: テストをデバッグ
おそらく短時間で何度もテストデバックを行ったことが原因のよう
Apex デバックログ
デバッグログ制限
デバッグログには、次の制限があります。
各デバッグログは最大 20 MB です。デバッグログのサイズが 20 MB を超えると、System.debug ステートメントの始めの方のログの行など、古いログの行の削除によってサイズが縮小されます。ログの行は、デバッグログの最初からだけでなく、どの位置からでも削除できます。
システムデバッグログは 24 時間保持されます。監視デバッグログは 7 日間保持されます。
15 分間で 1,000 MB を超えるデバッグログを生成すると、追跡フラグが無効になります。追跡フラグを最後に更新したユーザーにメールが送信され、15 分後に追跡フラグを再度有効化できることが通知されます。
警告
頻繁にアクセスされる Apex クラスや、要求を何度も実行するユーザーに対して、デバッグログ追跡フラグを有効にすると、デバッグログの時間枠やサイズにかかわらず、要求が失敗する場合があります。
組織で 1,000 MB を超えるデバッグログが蓄積された場合、組織のユーザーは追跡フラグを追加したり、編集したりできなくなります。この制限に達した後、さらにログを生成できるように追跡フラグを追加または編集するには、デバッグログをいくつか削除します。
ではデバックを実行できない原因である、デバックログを削除したら良い
デバックログ
下記の手順に沿ってデバックログを削除したら良い
※Salesforce 画面 設定画面の「デバックログ」から
「すべてを削除」を使用しても、当該ページに表示されているレコードしか削除されない(ログは削除されるわけではない)
テスト結果が見つかりませんでした と言われる
今回は接続先の Salesforce 環境にコードが反映されていないことが原因。
エディター上で開発をしているとき、
テストメソッドを変更したら、まずは接続している Salesforce 環境に
編集したファイルをデプロイする必要がある。
編集したファイルを該当環境にデプロイすれば
再度テストを実行できる
error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record: [] と言われる
この部分で複数のテストメソッドまたは別のプロセスが同時に同じ
オブジェクトを操作しているのが原因
今回の原因は通常ならありえないことだが
エディター上と Salesforce 上でそれぞれ違うテストクラスを実行していたことが原因。
同じ Trigger について同時に Apex テストを実行していたため
通常エディター、もしくは Salesforce どちらかの環境下で
Apex テスト実行オプションで以下の項目にチェックを入れていれば
回避することができるよう。
並列 Apex テストを無効化
テストメソッドを一度に一つずつ実行します。
盲点だったのが、エディターでデバッグした結果が接続先のデバックログにもログのレコードとして反映されるので
以下と同義にになるということ。
エディターで実行する = Salesforce 上で実行する
参考記事
https://base.terrasky.co.jp/articles/sw87f
https://qiita.com/k_0120/items/65d4a1fc66343eb953b3
https://base.terrasky.co.jp/articles/DBbKJ