我不认为以上的回答解决了我同样的问题。
接受的答案并不完美。这样,自定义选项应始终放在参数列表的末尾,并且没有指示器表明它们是自定义选项。如果我需要的自定义选项的数量不是固定的,我应该编写很多代码来用正则表达式或类似的东西来解析自定义选项。
环境变量解决方案是好的,但并不自然。看起来很奇怪。
VAR1=aaa VAR2=bbb VAR3=ccc ./phpunit-custom-option CustomOptionTest.php
shell脚本加上setUp()解决方案与接受的方法共享同样的弱点。可能你应该编码很多来解析文件并处理不可预知数量的自定义选项。
我不认为引导脚本是正确的解决方案。它可以用来自动处理肮脏的作品,每次做同样的事情,但没有处理好更换零件。
我不喜欢以上所有答案。
我自己也没有好主意。但也许我所做的可以给你灵感。我在GitHub上分叉了phpunit项目,并修改了一些代码,并使其支持自定义选项功能。
修改PHPUnit的版本,可以接受这样的自定义选项:
./phpuint-custom-option --custom var1=value1 --custom var2=value2 CustomOptionTest.php
而且在测试中,您可以通过访问访问自定义选项超级全局变量$ _ SERVER
<?php
class CustomOptionTest extends PHPUnit_Framework_TestCase {
public function testCustomOption() {
$this->assertEquals('value1', $_SERVER['var1']);
$this->assertEquals('value2', $_SERVER['var2']);
}
}
并且您可以找到我的代码here,并下载修改后的版本here(由c点击页面上的“查看完整文件”链接)。
仅供参考。 this article是类似的解决方案。
这听起来很有希望,我会试试 – 2010-01-19 18:38:17
为我工作。谢谢。 – 2010-01-19 19:28:16
phpunit也使用参数,这样你根本不能使用它们 – jasir 2014-07-31 15:17:38