STEP 3 — Testing / 3-7

テストを書いて、
自動で回す。

サイトを直したあと、「ちゃんと動くかな?」と毎回ドキドキしながら確認していませんか。その確認作業を、コンピューターに自動でやってもらう仕組みが テストです。この章では、テストとは何かから始めて、Claude Code にテストを書いてもらい、push するたびに自動でチェックが走るところまで。前章の 公開(デプロイ)CI/CD の知識が、ここで一つにつながります。

この章のゴール

  • テスト(テストコード)が何をするものか、自分の言葉で説明できる
  • テストを自動で回すことが、なぜ大切なのかがわかる
  • Claude Code にテストを書いてもらい、手元で実行できる
  • push のたびに GitHub Actions でテストを自動実行できる

そもそも「テスト」とは

ここでいうテストとは、テスト用紙のことではありません。「あなたのサイトやプログラムが、思ったとおりに動くかどうかを、自動でチェックしてくれる小さなプログラム」のことです。テストコードとも呼びます。

たとえば、お問い合わせフォームを作ったとします。テストは、「名前とメールを入れて送信したら、ちゃんと“ありがとうございました”と表示されるか?」を、人間の代わりに何度でも確認してくれます。「こう操作したら、こうなるはず」という“約束”を文章にしておき、その約束が守られているかを機械が判定する——それがテストの正体です。

となりに座って一言

むずかしく考えないでください。テストは「動作確認の手順を、メモではなくプログラムとして残しておくもの」です。これまで手で「フォームに入力して送信して……」と確認していたことを、一度プログラムに書いておけば、あとはボタン一つで何度でも、しかも一瞬で確認できる。それだけのことです。

なぜ、わざわざテストを書くのか

「動いているんだから、いちいちテストなんて要らないのでは?」と感じるかもしれません。テストの本当のありがたみは、サイトを“直したとき”に出てきます。

サイトは一度作って終わりではなく、何度も手を入れて育てていくものでしたね。ところが——あるページを直したら、まったく別のページが知らないうちに壊れていた。これは開発で本当によく起こります。これを「デグレ(後戻り)」と呼びます。人間がすべてのページを毎回手で確認するのは、現実的ではありません。見落とします。

そこでテストです。一度テストを書いておけば、どこかを直すたびに「他のところも全部、まだ大丈夫か」を一瞬でまとめて確認できます。これが、テストを書くいちばんの理由です。直すのが怖くなくなる——つまり、安心して育て続けられるようになるのです。

となりに座って一言

テストは「未来の自分への保険」です。今は全体を覚えていても、3か月後にサイトを触るときには、どこが何とつながっていたか忘れています。そのとき、テストが「ここ、壊れてますよ」と教えてくれる。講座で「直すのが怖い」という声をよく聞きますが、テストはその怖さを消すための道具なのです。

「自動で回す」が、いちばん大事

テストを書いても、実行するのを忘れたら意味がありません。「急いでいたから、今回は確認せずに公開しちゃった」——その一回で事故は起きます。人間は、忙しいと必ずチェックを飛ばします。

だから、テストは「人が思い出して実行する」のではなく、「仕組みが勝手に実行する」形にします。具体的には、前章で学んだ GitHub Actions を使い、GitHub に push するたびに、自動でテストを全部走らせるようにします。テストが通らなければ、公開を止めることもできます。

これで、流れはこうなります——直す → push → 自動でテストが走る → 全部OKなら自動で公開。壊れたものは、世界に出る前に止まる。これが、テストと CI/CD を組み合わせた「安心して回せる開発」の形です。

独学だと、ここで止まる

テストを書いて満足し、回さなくなる

いちばん多いのが、テストを書いただけで、実行する習慣が続かないパターンです。手で実行する運用だと、たいてい3日で忘れます。だからこそ「自動で回す」仕組み(GitHub Actions)まで一度に作ってしまうのが正解。仕組みにしてしまえば、あなたが意識しなくても毎回必ず走ります。テストは「書く」より「自動で回し続ける」までやって、はじめて効果が出ます。

どんなテストを書けばいい?

最初から完璧を目指さなくて大丈夫です。「壊れたら困る、大事なところ」から1つずつ書いていきます。たとえば、こんな観点です。

  1. 大事な機能は動くか:問い合わせフォームが送信できる、予約ボタンが反応する、など。
  2. 正しい結果が返るか:合計金額の計算が合っている、入力チェックがちゃんと弾く、など。
  3. ページが正しく表示されるか:トップページがエラーにならず開ける、必要な見出しが出ている、など。

「うちのサイトで、絶対に壊れてほしくないのはどこか?」——その問いの答えが、最初に書くべきテストです。

となりに座って一言

全部の機能にテストを書く必要はありません。お金が動くところ・お客さまに迷惑がかかるところを最優先に。逆に、見た目のちょっとした余白などは、テストより目で見たほうが早いこともあります。「どこにテストを書くと効果が高いか」も、Claude に相談できます。

① Claude Code にテストを書いてもらう

テストコードも、自分でゼロから書く必要はありません。Claude Code にお願いするのが正解です。何を確認したいかを日本語で伝えれば、その言語・仕組みに合ったテストを書いてくれます。

Claude Code へのプロンプト
このサイトのお問い合わせフォームについて、テストを書いてください。
・名前・メール・本文を入力して送信すると「ありがとうございました」と表示されること
・メールアドレスが空のまま送信すると、エラーメッセージが出ること
このプロジェクトに合ったテストの仕組み(テスト用のライブラリ)も、必要なら一緒に導入して、実行のしかたも教えてください。

「テスト用のライブラリ」とは、テストを動かすための道具のことです(よく使われるものに JestVitest、ブラウザ操作まで試す Playwright などがあります)。どれを使うべきかも含めて、Claude がプロジェクトに合わせて選んでくれます。名前を覚える必要はありません。

② 手元でテストを実行してみる

テストが用意できたら、まずは自分のパソコンで走らせてみます。多くのプロジェクトでは、次のような短いコマンドで実行できます(具体的なコマンドは Claude が教えてくれます)。

ターミナルに入力
npm test

実行すると、テストの結果が緑(成功)/赤(失敗)で表示されます。緑がずらりと並べば、確認したかったことが全部OKという意味。赤が出たら、そこが「約束どおりに動いていない」場所です。

となりに座って一言

赤が出ても、落ち込まないでください。むしろテストが仕事をした証拠です。壊れている場所を、公開前に教えてくれたのですから。赤になったテストの内容をそのまま Claude に貼って、「このテストが失敗します。原因を調べて直してください」と頼めば大丈夫。これも、これまでと同じ対処法ですね。

③ push のたびに、自動でテストを回す

いよいよ本題、自動化です。前章と同じ GitHub Actions を使い、push されたら自動でテストを走らせる命令書(ワークフロー)を置きます。場所も同じ、.github/workflows/ の中です。

.github/workflows/test.yml
name: Run tests

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test

ざっくり読むと——「push されたら(on: push)、作業machineを用意し、必要な道具を入れて(npm install)、テストを実行する(npm test)」という命令書です。これも、自分で書かずに Claude に頼むのが確実です。

Claude Code へのプロンプト
mainブランチへのpushとプルリクエストのたびに、このプロジェクトのテストを自動で実行するGitHub Actionsのワークフローを作ってください。.github/workflows/test.yml として作成し、各ステップの意味も初心者向けに説明してください。

これを push して登録すれば完成です。以降は GitHub の「Actions」タブで、push のたびにテストが自動で走り、緑か赤かが記録されていきます。

仕上げ — テストが通ったときだけ公開する

ここまで来たら、最後のひと工夫です。「テストが全部通ったときだけ、自動で公開する」ようにつなげば、壊れたものが本番に出ることを仕組みで防げます。公開(デプロイ)FTP自動公開と、このテストを組み合わせるわけです。

Claude Code へのプロンプト
テストが全部成功したときだけ、自動で公開(デプロイ)が実行されるように、GitHub Actionsのワークフローをつなげてください。テストが1つでも失敗したら、公開は止めるようにしてください。

これで、直す → push → 自動でテスト → 全部OKなら自動で公開という、安心の流れが完成します。ここまでが、プロの現場でも使われている「テスト付きの自動公開」の基本形です。

独学だと、ここで止まる

手元では通るのに、GitHub Actionsで赤くなる

「自分のパソコンでは npm test が緑なのに、GitHub 上だと赤」——よくあります。原因は、必要な道具のインストール漏れや、手元にしかない設定(環境変数など)を GitHub 側に用意していないこと。フォームの章で触れた環境変数を、テスト用にも GitHub Secrets へ登録する必要がある場合もあります。赤くなった Actions のログをそのまま Claude に貼って、「手元では通るのにここで失敗します。原因は?」と聞くのが最短です。

この章で出てきた言葉

テスト / テストコード
「こう操作したら、こうなるはず」を確認してくれる小さなプログラム。動作確認を自動化します。
デグレ(後戻り)
あるところを直したら、別のところが知らないうちに壊れること。テストが防いでくれます。
テストライブラリ
テストを書いて動かすための道具。Jest・Vitest・Playwright など。Claude が選んでくれます。
npm test
多くのプロジェクトでテストを実行する標準的なコマンド。結果が緑/赤で出ます。
GitHub Actions
push などをきっかけに、決めた手順(ここではテスト)を自動で実行する仕組み。
CI(継続的インテグレーション)
変更を取り込むたびに、自動でテストして問題がないか確かめ続けること。CI/CD の「CI」の部分。

この章のまとめ

  • テストは「動作確認を自動でやってくれる小さなプログラム」。直すのが怖くなくなる
  • いちばん大事なのは 自動で回すこと。人は忙しいと必ずチェックを飛ばす
  • テストもワークフローも Claude に書いてもらう。大事なところから1つずつ
  • 仕上げは テストが通ったときだけ自動公開。壊れたものは世界に出る前に止まる

Support

テストで、つまずいたら。

「何をテストすればいいか分からない」——その最初の一歩こそ、対面で一緒に考えるのが近道です。受講中の方は、あなたのサイトに合わせて一緒に組みましょう。

電話で相談 080-6946-4006