2

私は他の同様の投稿を読んだ後、すべてを手紙に従っていると感じたので、混乱とこの投稿:

私は実行しています: - Windows 7 64bit - Wamp Server 2.0 with php 5.2.5

Yii と PHP5 を使用したアジャイル Web 開発の packt を読んでいます。

これまでのアクション:

  1. c:\wamp\bin\php5.2.5\PEAR\pear に PEAR をインストールしました (「PEAR」内にサブフォルダーが作成されました)。
  2. Selenium RC のインストールとセットアップ
  3. 環境変数用の PEAR_ENV.reg ファイルを追加
  4. コマンド プロンプトで「pear」と入力すると、PEAR が機能していることを再起動して確認しました (任意のサブフォルダーでも機能します)。
  5. PEAR経由でPHPUnitをインストールし、コマンドプロンプト経由で「phpunit」が機能していることを確認しました。'functional/SiteTest.php' で Yii テストケース用にセレンを使用してテスト済みの phpunit
  6. 両方の php.ini ファイル (php5.2.5 フォルダーと apache フォルダー内) の include_path を「c:\wamp\bin\php5.2.5\PEAR\pear」に変更してテストしました。phpunit と pear が機能するには、両方が同じである必要があることがわかりました (?)

問題: コマンドプロンプトから入力すると、次のコマンドが機能します。

cd c:\wamp\www\yiidemo\protected\tests
phpunit functional\SiteTest.php

phpunit は、Firefox でサイトをテストするために Selenium と連携します。

しかし、本に記載されているようにテスト用の空のクラスを作成し、これを実行すると:

phpunit unit\MessageTest.php

私はこれを得る:

"Warning: require(PHPUnit/Autoload.php): failed to open stream: No such file or directory in c:\wamp\www\yiidemo\protected\tests\unit\MessageTest.php"

しかし、ユニットフォルダーに入ってコマンドを試すと:

phpunit MessageTest.php

エラーメッセージが表示されます

"Fatal Error: Class 'CTestCase' not found in "c:\wamp\www\yiidemo\protected\tests\unit\MessageTest.php" on line 3

<?php 
class MessageTest extends CTestCase
    {

    }
?>

私が間違っていることを考えてください。コマンドラインが機能しているので、私はこの時点まで長い道のりを歩んできました。

4

1 に答える 1

1

アップデート。問題が解決しました。

問題が解決しない詳細な理由:

  • 私が使用したphpunitバージョンにはAutoload.phpファイルがなかったため、最新のビルドをgithubからコピーしてpearフォルダーにダンプし、そこからいじってもセットアップ/インストールで機能しませんでした(参照がありません)。

  • github フォルダーから Autoload.php ファイルだけをコピーしたとしても (どうなるかを確認するため)、参照がさらに欠落していることから、Yii が期待していたものは、私がインストールしたものとは大きく異なるものであることがわかりました。

  • 残念ながら、PEAR は PHP のバージョンに基づいて、インストールする phpunit のバージョンを決定します。私は php5.2.5 を使用していたので、 --force --alldeps オプションを使用したとしても、インストールされる phpunit の最高バージョンは Autoload.php のないバージョンでした。

前進する。

  • セットアップを少なくとも PHP5.3.4 にアップグレードする

  • \path\to\php\php5.3.4 で go-pear.phar を実行し、デフォルトのパラメーターを受け入れます

  • PEAR_ENV.reg をレジストリに追加

  • phpunitをインストールする

  • phpunit/seleniumをインストール

Wampserver ユーザーへの注意 (重要!!) 2.2 ではなく、wampserver 2.1 のみにアップグレードしてください! 2.2 では curl 拡張が機能していないようで、phpunit selenium のインストール時に問題が発生します。Wamp 2.1 (私は 2.0 からアップグレードしていました) でも、php フォルダーと apache フォルダーの両方の php.ini ファイルで手動で curl 拡張機能を有効にする必要があります (私がテストした限り、PEAR は PHP の php.ini を使用し、phpunit は apache の php.ini を使用しました。に)。

WAMP 2.2 を使用すると、php.ini で curl を有効にしても、「サイド バイ サイド」構成エラーが発生しました。リンクを参照してください: Wamp Server 2.2 Windows 7 64ビットおよびcurlが動作しないサイドバイサイド構成が正しくありません

Selenium for PHPUnit をインストールするには、curl 拡張機能が必要です。

これらすべてを考慮に入れれば、問題はありません。

于 2012-09-12T22:11:13.187 に答える