我想:
我该怎么做?我尝试下载代码here并包含Autoload.php
,但它仍然有一些依赖项。也许有一些更好的方法比试图将它与我的代码捆绑...?
答案 0 :(得分:2)
要在项目源文件中包含PHPUnit,我建议按照指南进行操作:
来自PHPUnit Contributung部分的 Using PHPUnit From a Git Checkout
。
它告诉您需要安装的所有软件包,并显示您为phpunit可执行文件构建运行器/包装器脚本。
#!/bin/bash
php -d include_path='.:../phpunit/:../dbunit/:../php-code-coverage/:../php-file-iterator/:../php-invoker/:../php-text-template/:../php-timer:../php-token-stream:../phpunit-mock-objects/:../phpunit-selenium/:../phpunit-story/:/usr/local/lib/php' ../phpunit/phpunit.php $*
您可以根据需要调整路径,或者如果您想将其包装在另一个脚本中,您也可以通过编程方式使用phpunit
require '/path/to/phpunit/PHPUnit/Autoload.php';
PHPUnit_TextUI_Command::main();
这假设你有一个phpunit.xml.dist
文件,或者你在调用你的包装器脚本时使用了正确的cli参数。
您还可以使用pear包并解压缩所有稳定版本,而不是使用git checkout来保存一些磁盘和repo空间。包装器脚本和所有包含路径的工作方式相同:)
相关的SO问题:
答案 1 :(得分:1)
依赖项将取决于您正在使用的附加组件,PHPUnit本身应该是自包含的。由于没有针对PHP的特别一致的包管理解决方案(并且除了轮重构之外你已经消除了最可行的选项),最好的办法是将源文件中的文件与应用程序代码分开。从您的APPLICATION_ROOT或类似名称“test”创建一个兄弟目录,其中包含一个充满PHPUnit的“lib”或类似目录,以及您需要的任何依赖项,这可能是一个很好的计划。从测试目录到主应用程序源应该没有重叠和单向依赖。
我假设您正在寻找一个健康检查自动化测试页面,因此您可以创建包含该测试目录所需内容的单个页面。理想情况下,如果你有一个暴露静态资源的web目录,你可以通过在文档根目录外部包含应用程序文件夹,然后加载第二个文件来负责为应用程序加载Front Controller。测试套件。这将允许您的应用程序目录继续关注应用程序代码本身,测试目录以容纳您的测试代码,然后是2个小型包含文件,负责加载代码库(具有任何类型的共享常量定义等)。也提取并保持干燥)。
答案 2 :(得分:1)
PHP的一致包管理解决方案 - http://getComposer.org。它现在还有一种以通常的作曲家风格http://packagist.org/packages/phpunit/phpunit
安装PHPunit的方法安装软件后,它会将phpunit命令行脚本放入本地'bin /'目录,这样你就可以调用它,虽然你可能想要一个shell脚本也设置它将使用的配置文件
通常的设置是一个tests /子目录,其中包含运行实际测试的PHPunit扩展类的层次结构。