我想在我的项目中使用PHPUnit自动完成功能。出于某些不明原因,它在家工作,但不在工作场所。
如您所见,我已将以下目录添加到包含路径:
alert(member_id)
在此之前我玩了一些更多的目录。我还尝试将其添加到D:\phpunit
D:\phpunit\vendor\phpunit
D:\phpunit\vendor\phpunit\phpunit\src\Framework\Assert
但没有成功。
当然测试是有效的,路径中的Global PHP Inlcude path
。我无法弄清楚为什么autocompletiotion不起作用。
答案 0 :(得分:3)
编辑:
在阅读问题时,我假设您D:\phpunit\
的路径是针对phpunit.phar或测试文件或类似的那样。但最后一行包含让我觉得你克隆了phpunit的来源。这种方式肯定应该有效,因为源在包含路径上。但我想知道为什么包括#2和#3?他们已经处于第一条道路上了。也许NB在某些方面与所有这些多个嵌套的东西混淆了?我个人使用下面描述的方式几乎所有版本的PHPUnit从Linux和Windows不同版本的4.8开始,使用Netbeans 8.1和8.2。 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
标签 - > General
标签,并为您刚刚提取文件的文件夹添加全局包含路径(如/home/blah/blah/blah/PHPUnit
或其他任何内容)。
上述步骤不会影响phpunit的实际运行方式,只是为了让Netbeans能够自动完成查找。
关于你提到的第二件事 - 类命名和命名空间:
PHPUnit的代码单元现在是命名空间。例如, PHPUnit_Framework_TestCase现在是PHPUnit \ Framework \ TestCase
(取自原始来源https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-6.0.0)
最后一个:据我所知,phpunit骨架生成器很久以前就被抛弃了,所以重新考虑它的使用可能会有用。
答案 1 :(得分:0)
通常当我找到问题的答案时,如果答案是如此明显或只是一个错字,我会删除该问题,但我现在不这样做。这样做的原因是解决方案不那么明显,而且对其他人来说可能很方便。
我正在使用Netbeans 8.2
当您使用netbeans并想要设置PHPUnit时,您可以设置:
Options -> PHP -> Framework & Tools -> PHPUnit
其中一个输入字段叫做:Skeleton Generator脚本。
此脚本可帮助您在从netbeans创建新测试时创建一个sekeleton。
您需要添加到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->
时,您将获得自动填充列表。