タグ

ciとテストに関するmytechnoteのブックマーク (10)

  • そのテスト、最後まで実行されていますか? jestとnpm-run-allの恐るべき罠

    皆さんこんにちは。この記事では、筆者が最近業務中に経験した恐るべき罠についてシェアしたいと思います。 CIでユニットテストを実行することは、とても多くのプロジェクトで行われています。ユニットテストは特に、既存のコードの変更を自信を持って行うために必要なものです。弊社でも、CI (GitHub Actions) でユニットテストを実行しています。 あるとき、CIの挙動が不安定になったことをきっかけに、CI上でのユニットテストの実行について調べてみました。その結果、とんでもないことが判明したのです。 不安定になったCI 時折、CIにすごく時間がかかり、30分経ったあたりでタイムアウトしてしまうことがありました。そのときのログを見てみると、jestによるユニットテストが実行されている最中に、何のログも出力せずに突然止まっているようでした。そのようなときはリトライするとそこそこの確率で成功します。

    そのテスト、最後まで実行されていますか? jestとnpm-run-allの恐るべき罠
  • フロントエンドのテスト構成について考えてみた in 2023

    はじめに この記事では、 フロントエンドの開発において意義のあるテストはなにか? それらをコスパよく実現するためにはどうすればよいか? について考えて、作った構成を紹介します。 前提 下記の技術スタックを利用していますが、これ以外のスタックでも応用可能な仕組みが多いと思います。 Next.js Storybook playwright msw msw-snapshot (拙作) 注意事項 この記事の構成は、まだまだ実験的な機能だったり怪しい技術が一部採用されています。 msw-snapshot 拙作のライブラリであって、動作が怪しい可能性がめっちゃあります。 Next.js の testmode playwright + msw を実現するために必要でした。 まだまだ全然まともに動かないかもしれません。(サンプルリポジトリの単純なテストは動いた) サンプル 下記のリポジトリにサンプルを用意

    フロントエンドのテスト構成について考えてみた in 2023
  • ViteとVitestで開発のリズムを上げる - エムスリーテックブログ

    【Unit4 ブログリレー 1日目】 Viteは"ヴィート"と読みます♫ もう覚えましたね♫*1 こんにちは、エムスリーエンジニアリンググループの山田(@Satoki_1226)です。 日より、Unit4でもブログリレーを行うこととなりました。Unit4は医療系ポータルサイト m3.com の開発・運営を担当するチームです。Unit4エンジニアがリレー形式でテックブログを執筆し、どんなメンバーがいるのか・どのような開発をしているのかなど、ご紹介できればと思います。 トップバッターである私からは、m3ラウンジというサービスのVite移行時に得られた知見をもとに、 Vite/Vitestへの移行によって感じた「速さ」 移行時の手順とポイント をお伝えできればと思います。Viteが気になっている方や、Vite移行の進め方に困っている方にとって少しでも参考になれば幸いです。なお掲載しているサンプ

    ViteとVitestで開発のリズムを上げる - エムスリーテックブログ
  • 毎週リリースを実現するテスト活動 - クックパッド開発者ブログ

    こんにちは。 品質向上グループの茂呂一子(@ichiko_revjune)です。 クックパッドアプリは、サブミット・リリース作業を自動化して、アプリを毎週サブミットするようになりました。これを実現するリリースフローについては、 クックパッドアプリはみんなが寝ている間にサブミットされる で紹介しました。 このリリースフローを実現していく過程では、「機械に人間があわせる」という方針で、サブミット・リリース作業が自動化されていきました。つまり、毎週サブミット・リリースをするためには、何をどのように自動化するべきかという視点で自動化する対象が決まっていきました。 アプリは開発が終わればすぐにリリースできるというものではありません。この記事では、リリース前のテスト作業をどのように調整して、毎週リリースを実現しているのかを説明していきます。自動サブミットの導入はiOSアプリが先行したため、ここではiO

    毎週リリースを実現するテスト活動 - クックパッド開発者ブログ
  • JenkinsとSeleniumを使ってWebコンテンツの自動UIテスト環境を作ろう! - ICS MEDIA

    先日公開した「UIテストの自動化!Node.jsとSeleniumでWebアプリのUIテスト環境構築」では、手動で行っていたWebアプリのUIテストをSeleniumを使って自動化する手法についてご説明しました。 SeleniumでUIテストを自動化することにより、リグレッションテスト(改修により既存機能への影響がないかを確認する回帰テスト)が簡単にでき、バグの早期発見に繋げることができますが、実際にはこのテストを運用でしっかりと行っていかないとプロジェクトとしての品質向上にはつながりません。また、コマンドラインの扱いに慣れていない方は、コマンドラインからのテストの実行に抵抗があり、テスト結果もコンソールに出力されるため見づらいと思う方も多いと思います。 そこで今回はCI(継続的インテグレーション)ツールであるJenkinsとSeleniumを連携することで、定期的にテストを実行し、テスト

    JenkinsとSeleniumを使ってWebコンテンツの自動UIテスト環境を作ろう! - ICS MEDIA
  • アプリ開発効率化の鍵は「テストの自動化」日経電子版 × Sansan × 岸川克己氏 | キャリアハック(CAREER HACK)

    日経電子版×Sansanのアプリ開発勉強会シリーズ第3弾。最終回となる今回は「アプリ開発時のテスト自動化」「開発効率改善」がメインテーマ。辰濱健一氏 (Sansan エンジニア)、赤間夏樹氏 (株日経電子版 エンジニア)、岸川克己氏(アプリ開発テクニカルアドバイザー)がアプリ開発効率化を伝授する。 アプリ開発に自動化は必須か 「勢いよくアプリを開発したものの、デバイスごとにUIに不具合が……」 「テストを自動化したいけれど、やり方が分からない」 上記の方は、ぜひアプリ開発時のテスト自動化を図ってみてはいかがだろうか。 日経電子版×Sansanのアプリ開発勉強会、シリーズ第3弾。最終回のテーマは「アプリ開発時のテスト自動化」、「開発効率改善」。登壇者である辰濱健一氏、赤間夏樹氏、岸川克己氏の3名が経験した失敗、そして効率化への道を指南した。 【登壇者】 ・辰濱健一氏 (Sansan株式会社

    アプリ開発効率化の鍵は「テストの自動化」日経電子版 × Sansan × 岸川克己氏 | キャリアハック(CAREER HACK)
  • コードの健康状態を保て! Jenkinsとtestemを使って、JavaScriptで継続的インテグレーション(CI)を行う

    対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 継続的インテグレーションで「コードを健康的な状態に保つ」 皆さんはどのように開発したコードのテストとビルドを行っていますか? もう15年ほど前になりますが、筆者が行っていたJavaプロジェクトの方法を紹介しましょう。 テキストエディタでJavaのコードを修正 共有ディレクトリにコピー システムすべてのコードをコンパイル システムすべてのコードをjarファイル化 共有開発環境を手動シャットダウン 共有開発環境に手動ビルド 共有開発環境を手動起動 手動で画面から動作テスト エラーが起きた場合は1.に戻る 箇条書きにするとやることが多いですね。もしかすると古いシステムを開発されている方々は、これと近い方法でテストをしている場合もあるのではないでしょうか。何をやっているかはわかりやすいのですが

    コードの健康状態を保て! Jenkinsとtestemを使って、JavaScriptで継続的インテグレーション(CI)を行う
  • PHPUnit の実行を自動化する 3 つの方法 | Born Too Late

    皆さん, ユニットテスト書いてますか. TDD (テスト駆動開発) によるプログラミングは当に楽しいものですが, コマンドをいちいち手動で実行するのは面倒ですよね. テストを自動化しているんだから, その実行も自動化したいですよね. この記事では, 私が仕事趣味で使っている PHPUnit を例に, テストの実行の自動化について紹介します. PHPUnit の, としてはいますが, 他の言語で使えるテクニックもあります. なお, ここでの自動化は開発しながらの自動実行のことで, CI (継続的インテグレーション) の話は出てきません. その前に... 私の開発時のターミナルは以下のようになっています. [caption id="attachment_1298" align="alignnone" width="300" caption="開発時のターミナル"][/caption] GN

    PHPUnit の実行を自動化する 3 つの方法 | Born Too Late
  • Docker コンテナで MySQL を使ったテストの高速化 - stfuawsc

    全国1億2000万の Docker ファンの皆さんこんにちは。 MySQL の起動がとてつもなく遅いのは有名な話。 ところが Docker コンテナの起動はなかなか早いので、 MySQL を使っているようなテストを高速化するケースで有用性が認められるのではないかと思って PoC を書いてみた。 (宣伝)こういった話も含めて YAPC でトークしたいので SNS 等で upvote お願いします: ( ✌'ω')✌ 楽しいモデル層開発 - YAPC::Asia Tokyo 2014 (宣伝おわり) MySQL を使ったテスト MySQL を使ったテストをする場合、だいたい次の 2 パターンになる。 MySQL をテストのたびに起動してクリーンな状態で使う ローカルにデーモンとして起動した MySQL に接続して DROP TABLE や TRUNCATE でクリーンな状態にして使う だけど、

  • テストを書く - シンデレラは削らない

    http://t-wada.hatenablog.jp/entry/debugging-tests 和田さーん! テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。 チーム内にテストを書く習慣を持ち込んで三年、最初のうちは工数が増えるだけだ(あるある)、テストを書いても不具合がでるじゃないか(あるある)、システムテストでカバーすればいい(あるある)などという抵抗があり、それでも僕は淡々と雨の日も、晴れの日も、雪の日も、朝も夜も深夜も、終電後のオフィスでも、GW中の人気のないオフィスでも、自動テスト

    テストを書く - シンデレラは削らない
  • 1