2017-03-06 2 views
0

プロジェクトでPHPUnitオートコンプリートを使用したいと思います。いくつかの未知の理由のために、それは家で働いていますが、職場ではありません。NetBeans用のPHPUnitオートコンプリート

enter image description here

あなたは私がインクルードパスに次のディレクトリを追加しました見ての通り:私はいくつかのより多くのディレクトリと共演この前

D:\phpunit 
D:\phpunit\vendor\phpunit 
D:\phpunit\vendor\phpunit\phpunit\src\Framework\Assert 

。私はまた、それをGlobal PHP Inlcude pathに追加しようとしましたが、成功しませんでした。

もちろん、テストは動作していますが、パスにはD:\phpunit\が含まれています。なぜ私はオートコンプリティションが機能しないのか理解できません。

答えて

0

私は自分の質問に対する答えを見つけ出すのが普通ですが、回答があまりにも明白な場合やそれがちょうどタイプミスであった場合は削除しますが、今はしません。その理由はそれほど明白ではなく、他の人にとっては便利かもしれません。あなたは、NetBeansを使用し、PHPUnitのを設定したい場合は、私は

はNetbeans 8.2を使用しています

、あなたが設定することができますと呼ばれる入力フィールドの

Options -> PHP -> Framework & Tools -> PHPUnit 

ワン:スケルトンジェネレータスクリプトを。

このスクリプトは、netbeansから新しいテストを作成するときにスケルトンを作成するのに役立ちます。 D:\phpunit

テストファイルは次のように起動します:

あなたはInclude Pathに追加する必要がある唯一の1が私のためにそれはだ、あなたのPHPUnitのディレクトリへのパスです

<?php 

/** 
* Generated by PHPUnit_SkeletonGenerator on 2017-03-06 at 15:56:58. 
*/ 
class AbcTest extends PHPUnit_Framework_TestCase { 

を悲しいことに、あなたがすることはできませんphpunit-skelgen-2.0.1.pharにあるため変更してください。変更を加えても機能しません。ファイルの内容を変更できないことを確認する整合性チェックがあります。私は\PHPUnit\Framework\TestCaseにそれをオンにどのようなオートローダの方法があると思い

PHPUnit_Framework_TestCase 

ので、問題は、このようにはクラスがないことです。あなたはオートコンプリートのリストを取得します$this->入力を開始したとき、この後

class AbcTest extends PHPUnit\Framework\TestCase 

または

use PHPUnit\Framework\TestCase; 
class AbcTest extends TestCase { 

ソリューションは、これにextends後の単語を変更することです。

0

EDIT:

私はD:\phpunit\のパスがphpunit.pharまたはテストファイルまたはそのようななめらかためであると想定質問を読ん。しかし、最後の行はphpunitのソースをクローン化したと思う。ソースがインクルードパス上にあるので、この方法で確実に動作するはずです。しかし、なぜ#2と#3が含まれているのだろうか?彼らは既に最初の道にあります。たぶんNBは、この複数のネストされたものすべてと何らかの方法で混乱していますか?個人的には、NetBeans 8.1と8.2の両方を使って、バージョンが異なるLinuxとWindowsの両方で、PHPUnitのほぼすべてのバージョンが4.8から始まって、以下に説明する方法を使用しました。 Netbeansのオートコンプリートは、データベーステストケース(通常は基本クラスの4番目の子)でも常に動作しました。 NBと比較して、Komodo IDEはそれらを選ぶことは決してできませんでした。

オリジナルの答えは:

PHPUnitは定期的にも実行可能である.pharアーカイブを介して配布されます。すべてのPHPUnitファイルは内部にパックされています。私の知る限り、Netbeansは.pharのようなアーカイブのファイル検索をサポートしません。したがって、これを有効にしたい場合は、実行することをお勧めします。

// assuming that phpunit.phar is in the current directory 
$phar = new Phar('phpunit.phar'); 
$phar->extractTo('PHPUnit/'); 

これは、PHPスクリプトを作成して実行するか、コンソールで直接対話モードで実行できます。 >Options - - >PHPタブ -

は次にNetBeansで、あなたはメニューToolsに行くべき>Generalタブとグローバルを追加あなただけ/home/blah/blah/blah/PHPUnitまたは何でもそれがあるようなファイル(SMTHを抽出してきたフォルダのパスを含めます)。

上記の手順は、実際にphpunitを実行する方法には影響しません。Netbeansでオートコンプリートの検索を有効にするだけです。

コードのPHPUnitの単位が今名前空間されていますクラスの命名と名前空間 - あなたが言及した第二の事に関しては

。例えば、 PHPUnit_Framework_TestCaseを、今のPHPUnit \ Frameworkの\のTestCase

ある

そして、最後の(オリジナルソースhttps://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-6.0.0から撮影):私はそれように非常に長い時間前に放棄されたPHPUnitのスケルトンジェネレータを覚えている限りその使用法を再考するのに役立つかもしれません。

+0

他のディレクトリは試しただけで、インクルードパスが何を意味しているのか分かっていても、ウィンドウ上のものを知りました。問題は、PHPUnit_Framework_TestCaseが存在しないことです。私の答えをお読みください。とにかく、私は作曲家を通してダウンロードしました。骨組みはphpunit.deからです。 – vaso123

+0

FwiwこれはKomodo IDEではうまくいかない理由はありませんが、設定に応じていくつかの追加設定(インポートディレクトリの設定)が必要な場合があります。 – Naatan

関連する問題