テスト– tag –
-
PHPUnitの実行時に出ていた不要なログを出力しないようにした話
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 PR TIMESのバックエンドではPHPUnitを使用してUnitテストが書かれているのですが、テスト実行時に不要なログが大量に出力されていました。これは Notice Error や Logger によるログ出力によるもので長年放置されてきました。次の画像はGitHub Actions上でPHPUnitを実行した時の画像です。この画像では全体のログの1/3ほどしか写っておらず、実際にはまだまだログが出ています。 最近、私はFlakyなPHPUnitの調査を行っていたので... -
PR TIMESにおけるPlaywrightを用いたVisual Regression Test
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 昨年、Integration TestツールをCypressからPlaywrightに移行しました。その際、Visual Regression Test(以下、VRT)を始め、1年ほど経ったので弊社で行っているPlaywrightを用いたVRTの運用方法についてご紹介します。 https://developers.prtimes.com/2023/04/10/migrate-from-cypress-to-playwright 【前提】 PR TIMESは、React + Vite製のアプリケーション(主に企業様の管理画面)とNext.js製のアプリケーション(SEOが重要... -
PHPUnitを用いたDBテストを改善した話
開発
こんにちは。PR TIMES開発本部でインターンをしている笹山雷雅です。 PHPUnitを用いたDBテストを改善したのでブログにします。 【改善前のDBテストについて】 新規コードに関してはSQL呼び出しのルールが決まっています。しかし、過去の問題があるコードを全部新しいルールで書き直すのは現実的ではありません。 そこで、過去のSQLの呼び出しのコードだけを書き換える目的で、LegacyDAOというシンプルな仕組みに移行している最中です。 LegacyDAOを追加するときにUnit Testを追加するルールにしていますが、元々Un... -
CypressからPlaywrightに移行しました
開発
こんにちは、フロントエンドエンジニアのやなぎ( @apple_yagi )です。 先日、フロントエンドのIntegration Testで使用されていたCypressをPlaywrightに移行したので、その理由や実際に移行してみて感じたメリットなどをご紹介いたします。 【なぜ移行したのか】 いくつか理由はありますが、大きな理由の1つとして Cypress は並列でテストを実行することができなかったことがあります。 Cypress で書かれた Integration Test はAPIリクエストを全てモックしているため、データベースの状態などにテスト結果が左右... -
t-wadaさん直伝・TDDワークショップを開催して、社内にテスト文化が芽生え始めた!
勉強会
こんにちは、バックエンドエンジニアの江間です。 先日、テスト駆動開発(TDD)の日本での第一人者として知られる和田卓人(@t_wada)さんをお招きして、オンラインでテスト駆動開発ワークショップを開催しました。 【抱えていた課題感】 もともとPR TIMESには自動テストを書いていく文化がありませんでした。2022年初頭あたりから徐々に自動テストを追加するようになって来ましたが、テストを書く経験が浅いメンバーが多く、何となくテストコードを書いている状況でした。 メンバーとしては、テストを書こうとして...
1
