Help us understand the problem. What is going on with this article?

日本語版PHPUnitマニュアルを英語版と同期していきたい話

この記事は「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の説明が消えていますが、日本語版にはまだ残っています。

annotations.png

assertAttributeEquals()のアサーション

assertAttributeEquals()はクラスのプロパティをテストするためのアサーションです。この記述もPHPUnit 9から削除予定で非推奨になっています。1

次の画像は、左が英語版の「Assertions」で、右が日本語版の「アサーション」です。
英語版のassertEquals()の説明からはassertAttributeEquals()が消えていますが、日本語版にはまだ残っています。

assertions.png

setUp()へのvoidが抜けている

単純ミスだと思いますが簡単な例として紹介します。PHPUnit 8だとsetUp()setUp(): voidのようにvoidを付ける必要があります。
この点については私が確認した限りほとんどの箇所で反映済みになっていましたが、「フィクスチャ」の「Example 4.2 利用可能なすべてのテンプレートメソッド」のサンプルコードのsetUp()では、voidが抜けてしまっています。

setup.png

コラボレーターになりました

といったわけでこれだけの差分がある以上、特に最新の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ユーザが幸せになれるような、マニュアルにしていけるように頑張っていきたいです!

gamewith
GameWithは、ゲームをプレイされる皆様がより深くゲームを楽しんで頂ける環境を提供するべく設立されました。あなたがゲームをする時のお供になる。これが私達の目標です。
https://gamewith.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away