2017-03-06 146 views
0

我想在我的項目中使用PHPUnit自動完成。由於某些不知道的原因,它在家裏工作,但不在工作場所。PHPUnit自動完成Netbeans

enter image description here

正如你看到的我已經添加了以下目錄包含路徑:

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

這個我有一些更多的目錄播放之前。我也嘗試將它添加到Global PHP Inlcude path,但沒有成功。

當然,測試是有效的,路徑中的D:\phpunit\。我無法弄清楚爲什麼autocompletiotion不起作用。

回答

0

Usualy當我找出問題的答案時,如果答案如此明顯或者只是一個錯字,我會刪除該問題,但現在我不這樣做。原因是這個解決方案不是那麼明顯,對其他人來說可能會很方便。

我使用NetBeans 8.2

當您使用NetBeans,並要設置PHPUnit的,你可以設置:

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

一個叫輸入字段:框架生成腳本。

此腳本可幫助您在從netbeans創建新測試時創建一個骨架。

你需要添加到Include Path的只有一個路徑到您的PHPUnit的目錄,對我來說是:D:\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

的解決方案是extends這個後改字:

class AbcTest extends PHPUnit\Framework\TestCase 

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

在此之後,當你開始輸入$this->你會得到自動完成列表。

0

編輯:

通過我假定你D:\phpunit\路徑問題讀取時是phpunit.phar或測試文件或不服這樣。但是,最後一行inlcudes讓我覺得你已經克隆了phpunit的來源。這種方式當然應該起作用,因爲源包含在包含路徑中。但我想知道爲什麼會有#2和#3?他們已經走在了第一條道路上。也許筆記本電腦對所有這些多重嵌套的東西有些困惑?就我個人而言,我已經使用了下面描述的幾乎所有版本的PHPUnit,從4.8版開始,在Linux和Windows上使用Netbeans 8.1和8.2。即使對於數據庫測試用例(通常是來自基礎類的第4個孩子),Netbeans的自動完成功能也始終有效。與NB相比,科莫多IDE永遠無法挑選出來。

原來的答覆:

PHPUnit的定期通過.phar歸檔,這也是可執行的分佈。所有PHPUnit文件都打包在裏面。據我所知,Netbeans不會支持文件查找檔案,如.phar。所以,如果你想啓用,我建議做

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

這可以通過創建一個PHP腳本,並直接在交互模式控制檯執行,或完成。

然後在Netbeans的,你應該去菜單Tools - >Options - >PHP選項卡 - >General選項卡,並添加一個全球包括路徑,你剛纔解壓縮文件(水木清華像/home/blah/blah/blah/PHPUnit或不管它是文件夾)。

上述步驟不影響phpunit實際運行的方式,它只是爲了讓Netbeans能夠自動完成查找。

關於你提到的第二件事 - 類命名和命名空間:

PHPUnit的代碼單元現在的命名空間。例如, 化PHPUnit_Framework_TestCase現在是PHPUnit的\框架\ TestCase的

(取自原始來源https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-6.0.0

,最後一個:據我記得PHPUnit的框架生成的廢棄很久以前的事,因此可能有助於重新考慮其用法。

+0

那些其他dirs只是嘗試,即使我知道什麼是包含路徑的含義,我在窗戶上看到了有趣的東西。問題是沒有PHPUnit_Framework_TestCase存在。請閱讀我的答案。無論如何,我通過作曲家下載,骨架來自phpunit.de。 – vaso123

+0

Fwiw沒有理由在Komodo IDE中不起作用,但根據您的設置,您可能需要進行一些額外的配置(設置導入目錄)。 – Naatan