nikkie-ftnextの日記

イベントレポートや読書メモを発信

macOSでPHPUnitが流れる環境を作る

はじめに

こんかには〜🦀1 nikkieです。

2月のPHPカンファレンス関西2024登壇2準備の過程を残します。
PHPでテストが書ける環境を整えました

ふだんはPythonとめっちゃ仲良くしていてPHPとはこれから仲良くなっていきます。
本記事の内容について、小さな点でもよりよくできる点に気づかれた方は、@ftnextまでぜひお知らせください

目次

今回はHomebrewでPHPとComposerをインストール

実は業務で一番最初に触れた言語はPHPです(2016年)。
当時はXAMPPで環境構築しました。

今回はXAMPPとは別のやり方でインストールしたく、Homebrewを選択しました。
PHPUnitのインストールに必要なComposerもHomebrewでインストールできます。

% brew install php
% brew install composer

Homebrewに働いてもらって、私は待つだけです(ありがとう!)

Homebrewを使ってPHPをインストールする方法は、公式ドキュメントに記載がありました。

macOS で一番手っ取り早いインストール方法は、 以下のようにして、homebrew を使うやり方です。

インストールしたバージョンは以下です。

% php -v
PHP 8.3.1 (cli) (built: Dec 21 2023 17:49:39) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.1, Copyright (c), by Zend Technologies
% composer -V
Composer version 2.6.6 2023-12-08 18:32:26

PHPUnitを流すまで

まず作業ディレクトリに移動します。
composerでPHPUnitをインストールし、自明なテストケースを1つ作って確認します。
ちょうぜつ本の6.3を参考にしています。

% composer require --dev phpunit/phpunit
% vendor/bin/phpunit --version
PHPUnit 10.5.5 by Sebastian Bergmann and contributors.

自明なテストケースを作成(tests/ExampleTest.php

<?php
use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
  public function testHello(): void
  {
    $this->assertTrue(FALSE);
  }
}

FALSETRUEと検証しています。
落ちるテストですね3

テストコード実行

% vendor/bin/phpunit tests
PHPUnit 10.5.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.3.1

F                                                                   1 / 1 (100%)

Time: 00:00.008, Memory: 6.00 MB

There was 1 failure:

1) ExampleTest::testHello
Failed asserting that false is true.

/.../tests/ExampleTest.php:8

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

期待通り落ちました。
PHPUnit動かせていますね。

assertTrue(TRUE)に変えると通ります。

% vendor/bin/phpunit tests
PHPUnit 10.5.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.3.1

.                                                                   1 / 1 (100%)

Time: 00:00.004, Memory: 6.00 MB

OK (1 test, 1 assertion)

PHPUnitが流れる環境、できあがり!🙌

候補に挙がったが見送ったasdf

以前Elixirのインストールで利用したasdf4
PHP勉強会でのLTでツラいことを知っていたので、今回は見送りました。

終わりに

PHPカンファレンス関西2024登壇準備の一環として、PHPUnitの環境構築をしました。

  • phpとcomposerはHomebrewで入れた
  • PHPUnitをcomposerでインストールし、自明なテストが動作した

動作確認できたので、これにて環境構築完了です!
仲良くなるぞ〜


  1. PHPカンファレンス北海道2024で爆誕した挨拶です。アーカイブとてもありがたいです
  2. テストコードを書けるようになっていこうというお話をさせていただきます
  3. 期待通り壊れることで、環境構築できていることを確認します。」 ref:みんなのPython勉強会#88のやっとむさんによる「手軽なpytestでテストを活用しよう!」、テストコードに関係する知識が結び付き、刺激的でした #stapy - nikkie-ftnextの日記