この記事は「PHP Advent Calendar 2019」の10日目の記事です。
はじめに
PHPUnitのマニュアルはバージョン7以降は次のページで公開されています。PHPUnitを使っている方の多くが見たことあるページだと思います。
英語版以外は最新バージョン(latest)のみ、英語版だとhttps://phpunit.readthedocs.io/en/7.5 のように、古いバージョンのマニュアルも見れる運用になっているようです。
日本語マニュアルの現状
日本語版のマニュアルは最新バージョンの英語版との同期が必要な関係で、記述内容がどうしても古くなってしまいます(まあこれは他言語にもいえることですが・・・)。
ほんの一例になりますが、日本語版で古くなってしまっている箇所を挙げます。
@expectedException
のアノテーション
@expectedException
は例外テストをするためのアノテーションです。この記述はPHPUnit 9から削除予定で非推奨になっています。1
次の画像は、左が英語版の「Annotations」で、右が日本語版の「アノテーション」です。
英語版は@doesNotPerformAssertions
の下が@group
になっていて、@expectedException
の説明が消えていますが、日本語版にはまだ残っています。
assertAttributeEquals()
のアサーション
assertAttributeEquals()
はクラスのプロパティをテストするためのアサーションです。この記述もPHPUnit 9から削除予定で非推奨になっています。1
次の画像は、左が英語版の「Assertions」で、右が日本語版の「アサーション」です。
英語版のassertEquals()
の説明からはassertAttributeEquals()
が消えていますが、日本語版にはまだ残っています。
setUp()
へのvoid
が抜けている
単純ミスだと思いますが簡単な例として紹介します。PHPUnit 8だとsetUp()
はsetUp(): void
のようにvoid
を付ける必要があります。
この点については私が確認した限りほとんどの箇所で反映済みになっていましたが、「フィクスチャ」の「Example 4.2 利用可能なすべてのテンプレートメソッド」のサンプルコードのsetUp()
では、void
が抜けてしまっています。
コラボレーターになりました
といったわけでこれだけの差分がある以上、特に最新の8系とかを使っている環境だと日本語版マニュアルがどこまで正しいのか分からない状況になっているように感じます。
私自身も一人のPHPUnitユーザとしてこれは良くないと思い、日本語版マニュアルをメンテナンスしていきたいと思うようになりました(タイトルの回収)。
日本語版マニュアルは「sebastianbergmann/phpunit-documentation-japanese」のGitHubリポジトリで管理されています。Issueでコラボレータを募集していたのでそこから追加してもらって、晴れてコラボレーターになりました。
コントリビュートについて
コラボレーターになったからには自分自身の貢献もですが、他の方に対しても貢献していきやすいような環境にしていきたいと思っています。
まずは第1ステップとして現在の英語版との差分コミットを記載したIssueをバーっと作ってみました。「Differences from current english version」というタイトルが付いているIssueで、マニュアルの章ごとに分けています。
https://github.com/sebastianbergmann/phpunit-documentation-japanese/issues
見て頂けると分かるのですが、現状英語版と結構遅れてしまっていて上記の例で紹介したのはほんの一部です。さらに日本語への翻訳もプラスで必要なため、みなさんにもコントリビュートしてもらえると大変嬉しく思っています🙏
今後も日本語PHPUnitユーザが幸せになれるような、マニュアルにしていけるように頑張っていきたいです!