SimpleTestとPHPのバージョン対応表

SimpleTestとは

SimpleTest - Unit Testing for PHP

CakePHP 1.2や1.3でSimpleTestを使っていたね

PHP 5.1.6とSmarty 2.xで動いているレガシーアプリケーションがあります。ユニットテストはありません。この動作環境を PHP 7.xにアップデートすることが目標です。

かなり古いようで、foreach文ではなく、reset、list、eachを使っていました。

for ( reset($keys); list($i, $key) = each($keys); ) {Code language: PHP (php)

えいやっで PHP 7.1のDocker環境で動かしましたが、残念ながら一部の機能が動きません。

何がそんなに変わったの?と調べると、結構ありました。このアプリに影響しそうな項目をピックアップすると、

PHP: 付録 - Manual

5.1 -> 5.2

  • glob関数で "/xx/*/yy/*" で検索できなくなった。
  • pathinfo関数の返り値に'filename'が追加された。
    json_encode関数、json_decode関数が新規追加された。

5.2 -> 5.3

  • realpath関数の動きがOS間で統一された。
  • split関数が非推奨。
  • ereg関数が非推奨。
  • newの&参照が非推奨。
  • namespaceの導入。
  • クロージャの導入。

5.3 -> 5.4

  • 配列の短縮構文が追加され、array() の代わりに []を使えるようになった。
  • htmlspecialchars、htmlentitiesでcharset指定を推奨。

5.4 -> 5.5

  • mcrypt関数が非推奨。

7.1 -> 7.2

  • each関数が非推奨。

7.3 -> 7.4

  • get_magic_quotes_gpc関数が非推奨。
  • is_real関数が非推奨。

まず、PHP 5.1.6の状態で、E2EテストをSelenium IDEで作りました。

次に、最小限のユニットテストをSimpleTestで作ることにしました。

PHPのxUnitの主流は、phpunitよ。phpunitを使える環境なら、phpunitを使ってね。

ちなみに、
Smarty 3.x は、PHP 5.2+
composerは、PHP 5.3+
phpunit 4.8が、PHP 5.3.3+
です。

PhpStormのSettings>PHP Language Levelは、5.1や5.2はなく、5.3からです。

バージョン対応表

今回は、1.1.0のtar.gzをダウンロードして、使いました。

SimpleTestは、composerにも対応していました。1.1.3〜v1.2.0といくつかのバージョンがあります。

SimpleTestとPHPの対応バージョンは、次のとおりです。

SimpleTestPHPインストール
1.0.14.2.0+tar.gz
1.1.05.0.5+tar.gz
1.1.35.0.5+composer
1.1.45.0.5+composer
v1.1.55.0.5+composer
v1.1.65.0.5+composer
v1.1.75.0.5+composer
v1.2.07.1+composer

はじめてcomposerでsimpletestをインストールする場合

v1.1.7 または v1.2.0

composer以前のsimpletest 1.1.0用のテストケースがある場合

v1.1.3 で試してください。

v1.1.7 へ進むにつれて、クラスのコンストラクタが __construct() に置き換わっています。

作ったテストケースのコンストラクタを __construct()に置き換えれば、v1.1.7でも動くと思います。

タイトルとURLをコピーしました