Netbeans的PHPUnit自动完成
我想在我的项目中使用PHPUnit自动完成。由于一些未知的原因,它是在家工作,而不是在工作场所 如您所见,我已将以下目录添加到包含路径:Netbeans的PHPUnit自动完成,netbeans,phpunit,Netbeans,Phpunit,我想在我的项目中使用PHPUnit自动完成。由于一些未知的原因,它是在家工作,而不是在工作场所 如您所见,我已将以下目录添加到包含路径: D:\phpunit D:\phpunit\vendor\phpunit D:\phpunit\vendor\phpunit\phpunit\src\Framework\Assert 在此之前,我玩了一些更多的目录。我还尝试将其添加到全局PHP Inlcude路径中,但没有成功 当然,测试是有效的,路径中的D:\phpunit\。我不明白为什么自动完成不起
D:\phpunit
D:\phpunit\vendor\phpunit
D:\phpunit\vendor\phpunit\phpunit\src\Framework\Assert
在此之前,我玩了一些更多的目录。我还尝试将其添加到全局PHP Inlcude路径中,但没有成功
当然,测试是有效的,路径中的D:\phpunit\
。我不明白为什么自动完成不起作用。通常,当我为我的问题找到答案时,如果答案如此明显或只是打字错误,我会删除该问题,但我现在不会这样做。这是因为解决方案不是很明显,而且对其他人来说也很方便
我正在使用Netbeans 8.2
当您使用netbeans并希望设置PHPUnit时,可以设置:
Options -> PHP -> Framework & Tools -> PHPUnit
其中一个输入字段名为:骨架生成器脚本
当您从netbeans创建新测试时,此脚本帮助您创建sekeleton
您唯一需要添加到包含路径
的是PHPUnit目录的路径,对我来说是:D:\PHPUnit
测试文件的开头如下所示:
<?php
/**
* Generated by PHPUnit_SkeletonGenerator on 2017-03-06 at 15:56:58.
*/
class AbcTest extends PHPUnit_Framework_TestCase {
PHPUnit_Framework_TestCase
我认为有一种自动加载方法可以将其转换为\PHPUnit\Framework\TestCase
解决方案是将后的单词改为以下内容:
class AbcTest extends PHPUnit\Framework\TestCase
或
之后,当您开始键入$this->
时,您将获得自动完成列表。编辑:
在阅读问题时,我假设您的D:\phpunit\
路径是针对phpunit.phar或测试文件或类似的smth。但是最后一行inlcudes让我觉得你已经克隆了phpunit的来源。这种方式当然应该有效,因为源位于include路径上。但我想知道为什么会有2和3?他们已经在第一条道路上了。也许NB对这些多重嵌套的东西有些困惑?就我个人而言,我使用了下面描述的方法,在不同版本的Linux和Windows上,使用Netbeans 8.1和8.2,从4.8开始的几乎所有PHPUnit版本。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脚本并执行它来完成,也可以通过交互模式直接在控制台中执行
然后在Netbeans中,您应该进入菜单Tools
->Options
->PHP
tab->General
选项卡,并向刚刚提取文件的文件夹添加一个全局包含路径(smth,如/home/blah/blah/blah/PHPUnit
或其他)
上面的步骤并不影响phpunit的实际运行方式,它只是让Netbeans能够进行自动完成的查找
关于您提到的第二件事——类命名和名称空间:
PHPUnit的代码单元现在已命名。例如,
PHPUnit\u Framework\u TestCase现在是PHPUnit\Framework\TestCase
(摘自原始资料)
最后一个:据我记忆所及,phpunit骨架生成器在很久以前就被废弃了,因此重新考虑它的使用可能会很有用。那些其他目录只是尝试一下,我在windows上看到了有趣的东西,即使我知道include路径的含义。问题是不存在PHPUnit_框架_测试用例。请阅读我的答案。无论如何,我是通过composer下载的,骨架来自phpunit.de.Fwiw没有理由在Komodo IDE中不起作用,但是根据您的设置,您可能需要进行一些额外的配置(设置导入目录)。这对我来说不起作用。解包phar并指向include路径中的解包文件夹效果更好。您还可以使用骨架脚本生成的PHPUnit\u Framework\u TestCase
。
// assuming that phpunit.phar is in the current directory
$phar = new Phar('phpunit.phar');
$phar->extractTo('PHPUnit/');