如何在PHPUnit';s的骨架测试正在运行
我们在前置文件中设置了一个全局变量,用于形成require_once调用的路径。例如:如何在PHPUnit';s的骨架测试正在运行,php,phpunit,Php,Phpunit,我们在前置文件中设置了一个全局变量,用于形成require_once调用的路径。例如: require_once($GLOBALS['root'].'/library/particleboard/JsonUtil.php'); 问题是,当我运行PHPUnit的骨架测试生成器时,前置文件并没有运行,所以全局变量从未设置。当我跑的时候 cd /company/trunk/queue/process; phpunit --skeleton-test QueueProcessView PHPUnit
require_once($GLOBALS['root'].'/library/particleboard/JsonUtil.php');
问题是,当我运行PHPUnit的骨架测试生成器时,前置文件并没有运行,所以全局变量从未设置。当我跑的时候
cd /company/trunk/queue/process; phpunit --skeleton-test QueueProcessView
PHPUnit尝试在QueueProcessView中解析require_一次,但由于从未设置$GLOBALS['root'],因此在包含所需文件时出现致命错误
例如,对于PHPUnit,应该是什么
require_once(/code/trunk/library/particleboard/JsonUtil.php)
决议如下:
require_once(/library/particleboard/JsonUtil.php)
请注意缺少的根
有人知道骨架测试代码在运行之前是否有方法调用PHP文件吗?在这里,我可以在这个文件中设置我的全局['root']
任何其他创造性的解决方案都将不胜感激。好的,我想出来了。我只是编辑了PHPUnit/Util/Test.php文件以包含我的引用。这不是最优雅的解决方案,但由于框架的其余部分允许您调用引导文件,我可以使用这个被黑客攻击的实用程序。与您引导常规测试套件的方式相同,您也可以对骨架生成执行大致相同的操作
phpunit --bootstrap prepend.php --skeleton-test QueueProcessView
我用三个文件对此进行了测试:
test.php:
<?php
require_once($GLOBALS['root'].'/confirmedToRun.php');
class test
{
function doStuff()
{
}
}
谢谢阿利斯特!太好了。
<?php
$root = "/tmp/";
<?php
echo __FILE__;
phpunit --bootstrap prepend.php --skeleton-test test
PHPUnit 3.4.2 by Sebastian Bergmann.
/tmp/confirmedToRun.php
Wrote skeleton for "testTest" to "/home/me/tmp/testTest.php".