2017-03-06 119 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