アクトインディ開発者ブログアクトインディ開発者ブログ子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです2020-09-10失敗事例の共有。RailsはじめましてアクトインディでWebエンジニア職として採用されて4ヶ月目。今回は私の失敗事例を共有させていただきます。はじまりはリリース後のふとした違和感でした。最初にその違和感に気づいたのは、チームのメンバーでした。)たしかに、テストのカバレッジが50%以上も落ちてしまっていました。・・・私のリリースから。Modelのロードに失敗していました。run:マイグレーションに失敗しているみたいです。本番データベースでのマイグレーションは成功している本番のデータベースを見てもマイグレーションに成功している。原因判明!!トラブルなことを聞きつけて、チームメンバーと一緒に通話しながらPRを調査していると、スキーマ定義の日時がおかしいことが判明しました。)今回私がリリースする前に、コンフリクトが発生したのですが、その際に古い日時(自分が作成した日時)を優先してしまっていました。そのあとステージングで検証していませんでした。ステージングで検証していたと思っていたのですが、やったと思っていたのはコンフリクト解消する前だったみたいです・・・なぜ古い日時(自分が作成した日時)を設定するとテストが実行されなかったのかマイグレーションファイルとスキーマ定義の日時がずれていると、テストが失敗するためです。RailsのActiveRecordではDBの状態を管理するために、マイグレーションという仕組みを導入しています。マイグレーションでは3つの日時を管理しています。ここが今回おかしかったところです。データベース内に取り込んだマイグレーションファイルの作成日時マイグレーションファイルではどこまでの変更を取り込めば良いかというのを「2.スキーマの日時」で管理しています。今回そこが一番新しい日時になっていなかったので、不整合となり一部のテストが実行されていませんでした。マイグレーションではなぜCI/CDが落ちて止まらなかったのか?まだ再現できていないので未確定なのですが、テストがエラーで落ちなかった原因は、テストを実行する処理内でマイグレーション時のエラーの考慮が漏れていたからだと思われます。サマリーの表示」を行っています。テストに向けての準備」で失敗するとエラー終了します。ロードしたタイミングになっていました。サマリー表示」がされてしまい、正常終了していたようです。今回の失敗を通して学んだこと失敗は精神的にダメージを受けるので良くないことではあります。普段調べないようなところまでコードを読むという利点があるので、良いきっかけにしていきたいと思いました。引き続き調査を行っていきたいと思います。14:46Tweet関連記事2020-12-23CodeBuildのレポート機能を使ってRSpecの結果を見るmorishitaです。morishitaです。ランタイムのアップデートでハマったmorishitaです。(12)引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。