【发布时间】:2012-01-16 16:21:49
【问题描述】:
我的问题有点复杂。我在 IIS 上有多个 php 版本。每个php项目都有自己的php版本和域名,例如:www.webshop.loc...我正在通过NetBeans开发项目,我想使用TDD作为开发过程。
我的问题是:如何在不安装 PEAR 或打开任何 DOS 样式窗口的情况下安装 phpUnit,以及如何设置 phpUnit 以在不同的项目中使用不同的 php 版本?
(嗯 99% 那是不可能的。:S)
【问题讨论】:
我的问题有点复杂。我在 IIS 上有多个 php 版本。每个php项目都有自己的php版本和域名,例如:www.webshop.loc...我正在通过NetBeans开发项目,我想使用TDD作为开发过程。
我的问题是:如何在不安装 PEAR 或打开任何 DOS 样式窗口的情况下安装 phpUnit,以及如何设置 phpUnit 以在不同的项目中使用不同的 php 版本?
(嗯 99% 那是不可能的。:S)
【问题讨论】:
我可以回答安装部分:安装 PHPUnit without PEAR 并在 NetBeans 中使用它实际上非常容易,因为 PHPUnit 已作为 phar 存档提供。。 p>
下载 phar 文件并创建 2 个批处理文件后,一切正常。
在同一目录下创建一个phpunit.bat文件,内容如下:
@echo off
"C:\PathToYourPHPInstall\php.exe" "C:\PathToPHPUnit\phpunit.phar" %*
在同一目录下创建phpunit-skelgen.bat文件,内容如下:
@echo off
"C:\PathToYourPHPInstall\php.exe" "C:\PathToPHPUnit\phpunit-skelgen.phar" %*
在 NetBeans 中转到 工具 -> 选项 -> PHP -> 单元测试,选择您的 bat 文件,一切顺利!
【讨论】:
好消息:这是可能的。我已经做到了:)
坏消息:它不会很漂亮。
我的建议是将 PHPUnit 文件添加到您的存储库中。有关如何执行此操作的指南,请参阅 the 'using from a git checkout' section of the PHPUnit manual。
您可以为每个项目选择正确的分支和模块版本。请参阅此downgrading phpunit guide for the right module versions 或查看相应 git 分支的文档!
然后我建议设置一个phpunit-projectname.bat 或其他东西。
在该文件中,为每个项目使用 php-YOUR.VERSION -c the-needed-ini.ini your/projects/phpunit.php $passAllArguments 之类的内容。
即使升级很烦人,它也运行良好。
有一个完整的 PHPUnit.phar 正在开发中,但它还没有。这将使“安装”部分更容易。
要使用多个 php 版本运行一个 PHPUnit,您只需 your/php /path/to/your/phpunit,它将采用该版本而不是“默认”版本。
【讨论】:
C:\your-needed-php-version\PHP\php.exe -c C:\path\to\your\phpunit-version\php-ini-with-include-path.ini C:\path\to\your\phpunit-version\phpunit创建了一个文件phpnunit-project.bat,就是这样。只需告诉 netbeans 那就是“phpunit 可执行文件”。
我在 1.5 年后设法安装了 phpunit,所以这是现在的最新答案。
我只是简单地使用了带有这些设置的作曲家:PHPUnit via Composer and PhpStorm,它成功了!
我现在使用 phpstorm 而不是 netbeans,因为我可以为每个项目配置不同的 php 解释器和 phpunit 设置。我没有关注 netbeans 的变化,也许在新版本中它也能做到这一点,但 7.1 版本还不够。
【讨论】:
为了更新 webd0de 答案,两个 phar 文件的下载 URL 都已更改。
他们是:
phpphar:https://phar.phpunit.de/phpunit.phar
phpunit-skelgen.phar:https://phar.phpunit.de/phpunit-skelgen.phar
下载 phar 文件并创建 2 个批处理文件后,一切正常。
【讨论】: