我想使用命令行向PHP单元发送一个参数.
例如
./phpunit --foo='bar' AllTests
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我能够达到目标的最接近的是使用以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit>
<php>
<env name="foo" value="bar"/>
</php>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
然后我可以使用访问变量$_ENV['foo'].
但是,我想使用命令行发送此变量.
BVe*_*rov 11
使用phpunit.xml显然是恒定的环境变量,并用它来传递参数更改为测试是一个有点开销.
您可以做的是以下之一(请参阅将参数传递给PHPUnit进行讨论):
例: FOO=bar ./phpunit AllTests
优点:琐碎.
缺点:取决于环境; 需要记住变量的名称(如果有很多则不是那么简单); 没有关于支持/必要参数的明显文档.
例: ./phpunit AllTests bar
优点:琐碎; 独立于环境; PHPUnit参数没有限制.
缺点:如果有多个参数,将会很痛苦,特别是如果它们中的大多数是可选的; 预期参数没有明显的文档.
例如: . run.sh AllTests bar其中,run.sh在提供的参数看起来并出口到环境中.
优点:实施起来或多或少都是微不足道的; 添加预期参数列表的文档; 添加错误处理(例如,如果bar是必需参数,但未提供).
缺点:跑步者内部的PHPUnit参数是硬编码的; 依赖于环境.
例: ./phpunit --foo='bar' AllTests
优点:完全符合您的要求.
缺点:实施起来不是那么简单; 需要分叉,这使得它强烈依赖于当前PHPUnit版本的CLI.
示例: run.sh --foo=bar --coverage-html=baz where run.sh调用其中一些run.php反过来通过解析器运行命令参数,构建运行测试的命令并执行此操作.
优点:现在你可以做任何你喜欢的事情并添加你需要的任何参数.您可以实现自己的记录器,可以在多线程中运行测试等.
缺点:难以实施; 有时需要维护; 强烈依赖于PHPUnit CLI.
| 归档时间: |
|
| 查看次数: |
2973 次 |
| 最近记录: |