1

OS X 10.6 の MAMP で phpunit を実行すると問題が発生します。PEAR 経由で phpunit をインストールしましたが、MAMP ディレクトリに存在しますが、ターミナルで phpunit を実行しても何も起こりません。これはパスの問題だと思いますが、OS X の初心者として、修正方法がわかりません。/Applications/MAMP/bin/php5.3/bin から実行しようとすると、これが発生します

$ phpunit
-bash: /usr/bin/phpunit: No such file or directory
$ ./phpunit
$

この問題は、このHow to Install phpunit 3.5 on mac with MAMP と非常によく似ていますが、解決策はこれまでのところ機能していません。システム情報は次のとおりです。

MAMP での phpunit の場所

$ sudo find / -name "phpunit"
/Applications/MAMP/bin/php5.3/bin/phpunit
/Applications/MAMP/bin/php5.3/lib/php/PEAR/phing/tasks/ext/phpunit
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

多分ここが問題

$ which php
/usr/bin/php
$ which phpunit
$ which pear
$ which ./pear
./pear
$ which ./phpunit
./phpunit

/Applications/MAMP/conf/php5.3/php.ini からの私の php.ini

include_path = ".:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/bin/php5.3/lib/php/PEAR/"

phing を実行またはアクセスしようとすると、同じ問題が発生します。

繰り返しますが、問題はパス設定であると推測していますが、これを修正する方法がわかりません。

ありがとう

デイブ

アップデート

ご返信ありがとうございます。私のナシは 1.9.2 です pear config show lists

$ ./pear config-show
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    <not set>
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /Applications/MAMP/bin/php5.3/bin
PEAR documentation directory   doc_dir          /Applications/MAMP/bin/php5.3/lib/php/doc
PHP extension directory        ext_dir          /Applications/MAMP/bin/php5.3/lib/php/extensions
PEAR directory                 php_dir          /Applications/MAMP/bin/php5.3/lib/php/PEAR
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /Applications/MAMP/bin/php5.3/lib/php/cfg
directory
PEAR data directory            data_dir         /Applications/MAMP/bin/php5.3/lib/php/data
PEAR Installer download        download_dir     /tmp/pear/cache
directory
PHP CLI/CGI binary             php_bin          /Applications/MAMP/bin/php5.3/bin/php
php.ini location               php_ini          /Applications/MAMP/conf/php5.3/php.ini
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/temp
PEAR test directory            test_dir         /Applications/MAMP/bin/php5.3/lib/php/test
PEAR www files directory       www_dir          /Applications/MAMP/bin/php5.3/lib/php/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            22
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/local/bin/gpg
Signature Key Directory        sig_keydir       /Applications/MAMP/conf/php5.3/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /Users/dave/.pearrc
System Configuration File      Filename         /Applications/MAMP/conf/php5.3/pear.conf'

/Applications/MAMP/bin/php5.3/bin の ls -al は、とりわけ phpunit を一覧表示します

-rwxr-xr-x   1 dave  admin       920  6 Apr 19:55 phing
-r-xr-xr--@  1 dave  admin  57583340 16 Feb 16:08 php
-rwxr-xr-x   1 dave  admin      2169  6 Apr 19:48 phpunit

上記のように、php.ini には正しい場所がリストされているようで、echo $PATH が生成されます。

$ echo $PATH
/Applications/MAMP/bin/php5.3/bin:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/bin/php5.3/lib/php/PEAR/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin
4

3 に答える 3

3

「一般的な phpunit インストール トラブルシューティング リスト」の内容を試してみましょう。(以前にそれを書き留めたことがないので、あなたを何かにリンクすることはできません).

まず、それを確認してください

pear version

少なくとも報告しpear 1.9.2ます。そうでない場合:pear install --force pear/pearもう一度確認してください。それでもうまくいかない場合は、ナシを再インストールするしかありません。下記参照。

プロセス中に表示される「必要なチャネルのアップグレード」に関するメッセージは重要であり、提案されたコマンドを実行する必要があります。

その後、次を試してください:

pear install phpunit/phpunit --force --alldeps

チャンネルの欠落やチャンネルのアップグレードについて不平を言うのをやめるまで、それを繰り返します。

1.9.2 が表示されている場合でも、PEAR 1.9.2 が必要であると不平を言うことがありますpear version。これを解決するには、pear を再インストールするしかありませんでした。

ナシの再インストール

私が見つけた唯一の方法は、「名前を付けて保存...」を介してhttp://pear.php.net/go-pear.pharをディスクに再インストールして実行することですphp go-pear.phar


まだ運がない?

pear config-show 

「実行可能ディレクトリ」を探します

そのディレクトリに「phpunit」バイナリがない場合は、インストールが機能したことを再確認し、エラーメッセージについて通知されなかった場合:)

バイナリはあるがwhich phpunit機能しない

実行可能ディレクトリが $PATH にあることを確認するか、絶対パスを使用して動作するかどうかを確認してください

実行されますが、欠落しているコンポーネントに関するエラーがあります

PEAR directory( php_dir) が php.ini の include_path であることを確認してください


さらに問題が発生した場合は、私/私たちに何が問題なのかをお知らせください.答えを適応させようとします.

于 2011-04-08T08:27:35.053 に答える
1

PEARなしでMAMPにPHPUnitをインストールしましたが、うまくいくと思います。方法は次のとおりです。

おそらく、すでに git がインストールされています。そうでない場合は、http://help.github.com/mac-set-up-git/

この github ページの指示に従います: https://github.com/sebastianbergmann/phpunit/ - そのページ (2010 年 4 月 8 日) からのコピー:

mkdir phpunit && cd phpunit
git clone git://github.com/sebastianbergmann/phpunit.git
git clone git://github.com/sebastianbergmann/dbunit.git
git clone git://github.com/sebastianbergmann/php-file-iterator.git
git clone git://github.com/sebastianbergmann/php-text-template.git
git clone git://github.com/sebastianbergmann/php-code-coverage.git
git clone git://github.com/sebastianbergmann/php-token-stream.git
git clone git://github.com/sebastianbergmann/php-timer.git
git clone git://github.com/sebastianbergmann/phpunit-mock-objects.git
git clone git://github.com/sebastianbergmann/phpunit-selenium.git

それをコピーして端末に貼り付けます。これにより、phpunit とすべての依存関係を含む phpunit フォルダーが作成されます。次の手順は、すべてのフォルダーを php にコピーすることinclude_pathです。ファイル内のどこにinclude_pathあるかを調べphp.iniます。MAMP を使用しているので、 のようなものにする必要があります/Applications/MAMP/conf/php5.3/php.ini。通常、include_pathMAMP の場合は次のとおりです。

include_path = ".:/Applications/MAMP/bin/php5.3/lib/php"

ただし、フォルダーをコピーして貼り付けることはできません。コピーするフォルダーを退屈に把握する必要があります。package.xmlこれは、各フォルダのファイルを読むことで知ることができます。から始めphpunitます:

<dir name="/">
    <dir name="PHPUnit">
    ...
    </dir>
    <file baseinstalldir="/" name="ChangeLog.markdown" role="doc"/>
    <file baseinstalldir="/" name="LICENSE" role="doc"/>
    <file baseinstalldir="/" name="README.markdown" role="doc"/>
    <file baseinstalldir="/" name="phpunit.php" role="script">
        ...
    </file>
    <file baseinstalldir="/" name="phpunit.bat" role="script">
        ...
    </file>
</dir>

したがって、フォルダーPHPUnit、、、LICENSEをコピーします。この後、フォルダ、フォルダなどに移動します。ちょっと面倒です。README.markdownphpunit.phpphpunit.batinclude_pathdbunitphp-file-iterator

フォルダーを置き換えないでください。OSX は(正気な人のようにマージするのではなく)実際に各フォルダーを 置き換えます。そのため、フォルダーが既に存在する場合は、新しいフォルダー/ファイルのみをコピーします。少しのロジックで、コピーするフォルダを簡単に把握できるはずです。

phpunit.phpこの後、任意のフォルダーにコピーしてから、最初の行を編集します。

#!/usr/bin/env php

に:

#!/usr/bin/env /Applications/MAMP/bin/php5.3/bin/php

の権限を変更して、phpunit.php実行できるようにします。

chmod 744 phpunit.php

次のように実行できるはずです。

./path/to/phpunit.php testCase.php

お役に立てれば。


PEAR をアップグレードしたい場合、または MAMP OSX で使用したときの奇抜さについて何か知りたい場合は、ここに良い議論があります。

https://serverfault.com/questions/184741/upgrading-pear-from-1-9-0-to-1-9-1-fails


PEAR なしで PHPUnit をインストールすることに関する古い議論:

Mac OS X 10.5 で PEAR を使用せずに PHPUnit をインストールするにはどうすればよいですか?

于 2011-04-08T13:14:09.310 に答える
0

同様の問題がありましたが、このスレッドのおかげで修正できました。これが私がやった方法です: edorianの提案に従いました:

ナシの再インストール

私が見つけた唯一の方法は、「 名前を付けて保存...」を介してhttp://pear.php.net/go-pear.pharをディスクに再インストールし、php go-pear.pharを実行することです

次に、pear config-showこれを見るために呼び出されます:

Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    <not set>
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /Users/mbritto/pear/bin
PEAR documentation directory   doc_dir          /Users/mbritto/pear/docs
PHP extension directory        ext_dir          /Applications/MAMP/bin/php5.3/lib/php/extensions
PEAR directory                 php_dir          /Users/mbritto/pear/share/pear
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /Users/mbritto/pear/cfg
directory
PEAR data directory            data_dir         /Users/mbritto/pear/data
PEAR Installer download        download_dir     /tmp/pear/install
directory
PHP CLI/CGI binary             php_bin          /Applications/MAMP/bin/php5.3/bin/php
php.ini location               php_ini          /Applications/MAMP/conf/php5.3/php.ini
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/install
PEAR test directory            test_dir         /Users/mbritto/pear/tests
PEAR www files directory       www_dir          /Users/mbritto/pear/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            22
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/local/bin/gpg
Signature Key Directory        sig_keydir       /Applications/MAMP/conf/php5.3/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /Users/mbritto/.pearrc
System Configuration File      Filename         /Applications/MAMP/conf/php5.3/pear.conf

システム用とユーザー用の 2 つの構成ファイルがあることがわかりました (config-show の下部を参照)。

ユーザーconfファイルをバックアップし、システムのものに置き換えました。次に、php_ini 設定を /Applications/MAMP/conf/php5.3/php.ini に設定する必要がありました (システム構成ファイルにはないようです)。

その後、私のphpunitは再び機能しました!みんなありがとう :)

于 2011-04-14T14:43:29.550 に答える