MakeGood(on Eclipse)を使うならPHPUnitはComposerが確実(.pharは使わない)
MakeGoodのインストールで散々ハマりながらも動作環境を構築するに至ることができました。
実際に動作する環境を構築してみて、サイトでみかけた一言が、
結構重要だったのかなと感じるに至りました。
MakeGood(Eclipse)を使うならPHPUnitはComposerでインストールした方が確実。
というか、Composerでインストールされてくる依存コンポーネントを見れば、
到底手動ではインストールしきれない数のインストールがされてくることが分かります。
概要 [表示]
MakeGood(on Eclipse)を使うならPHPUnitはComposerで、.pharは使わない
MakeGood(Eclipse)を使おうとあちこち読み漁っている時に、
ふと以下のコメントに目が止まりました。
ShakeyDave commented on 7 Nov 2015
Hi – this could be a configuration error by me – I’ve been following the instructions here: [[http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt]] on a Windows machine, though I’ve adjusted them to bring things up-to-date (i.e. I’ve installed PHPUnit as a project dependency using Composer, not PEAR).
Here’s the stack trace:
I’m using the V11 x64 Thread Safe build of PHP. Could it be an issue with php-win.exe not recognising namespaces, maybe?
-G訳-
こんにちは – これは私の設定エラーかもしれません – 私はここに指示に従ってきました:Windowsマシン上の[[http://blog.loftdigital.com/running-phpunit-tests-in-eclipse-pdt]]、 私は物事を最新にするよう調整しましたが(つまり、PHPUnitをPEARではなくComposerを使ってプロジェクトの依存関係としてインストールしました)。
スタックトレースは次のとおりです。
私も同じ問題に直面していました。
PHARでPHPUnitをインストールしたり、Composerを使ったりと、
試行錯誤をしている中で、このエラーに対して質問をされている方の
最後の注記としてのコメントは何か意味があるのではないかと感じたのです。
つまり、PHPUnitをPEARではなくComposerを使ってプロジェクトの依存関係としてインストールした
(だから「PEARでインストールしていないかい?」という無用な返答は不要だ)
そう言っているように聞こえたのです。
言い換えれば、
「PHPUnitをMakeGood(on Eclipse)で使うならComposerでインストールすること」
ぐらいは私は分かっている。
たぶん、そう言いたいのかなと。
そこから、ComposerでMakeGoodを動く環境を構成する模索をし、解決に至る事ができました。
彼の一言は振り返ってみれば非常にいいヒントになった。
現実的にはComposerじゃなきゃ無理だ
どうしてそう思うのか?
コマンドラインでPHPUnitを動かすだけであれば手動インストールも可能でしたが、
実際、Composerでインストールされてくる依存コンポーネント群を見ると、
実際はこれだけのものが必要なのか・・・と唖然とするのです。
例えば、以下の様な「composer.json」で、
「phpunit/phpunit」と「phpunit/phpunit-skeleton-generator」を指定して、
インストールを行ったとします。
composer.json
コマンドプロンプトによる実行の結果は以下のようになります。
5行目から34行目までがインストールされたコンポーネントです。
これは以下の様な要件に従ってインストールされています。
phpunit/phpunit 5.7.27
requires
- php: ^5.6 || ^7.0
- phpunit/php-file-iterator: ~1.4
- phpunit/php-text-template: ~1.2
- phpunit/php-code-coverage: ^4.0.4
- phpunit/php-timer: ^1.0.6
- phpunit/phpunit-mock-objects: ^3.2
- phpspec/prophecy: ^1.6.2
- symfony/yaml: ~2.1|~3.0|~4.0
- sebastian/comparator: ^1.2.4
- sebastian/diff: ^1.4.3
- sebastian/environment: ^1.3.4 || ^2.0
- sebastian/exporter: ~2.0
- sebastian/global-state: ^1.1
- sebastian/object-enumerator: ~2.0
- sebastian/resource-operations: ~1.0
- sebastian/version: ^1.0.6|^2.0.1
- myclabs/deep-copy: ~1.3
- ext-dom: *
- ext-json: *
- ext-mbstring: *
- ext-xml: *
- ext-libxml: *
requires (dev)
- ext-pdo: *
suggests
- phpunit/php-invoker: ~1.1
- ext-xdebug: *
ちなみに上記の「phpunit/phpunit-skeleton-generator」単体でも、
こんなに多くはありませんが、そこそこの依存関係は発生します。
phpunit/phpunit-skeleton-generator 2.0.1
requires
- php: >=5.3.3
- phpunit/php-text-template: ~1.2
- sebastian/version: ~1.0
- symfony/console: ~2.4
requires (dev)
- phpunit/phpunit: ~4.0
- mikey179/vfsstream: ~1.2
これだけのコンポーネントを手でインストールする事を考えると、
やっぱりちゃんと動く環境を構築するのは、もはや修行だなとさえ思います。
MakeGood(on Eclipse)を使うなら、
PHPUnitはComposerでインストールする。これが確実。
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日: