Pass variable to PhpUnit(将变量传递给 PhpUnit)
问题描述
我使用 phpunit 开发了一组测试用例,用于测试开发站点和生产站点.唯一的区别是域名.如何将域从命令行传递到 phpunit 测试用例,这样我就不需要修改每个文件?
I developed a set of test cases using phpunit used for testing both development site and the production site. The only difference is the domain name. How can I pass the domain from command line to phpunit test cases so that I do not need to modify every file?
推荐答案
在你的 phpunit-bootstrap.php
你可以这样做:
In your phpunit-bootstrap.php
you can do something like this:
$site = getenv('DOMAIN');
并使用
<php>
<env name="DOMAIN" value="http://production.com"/>
</php>
在您的 phpunit.xml
文件中 如文档中所示.
in your phpunit.xml
file as shown in the documentation.
这种方法的缺点是您需要有两个不同的 xml
文件.
The downside of this approach is that you need to have two different xml
files.
其他选项在 phpunit 周围使用自定义包装脚本,如 @DavidHarkness 所展示的,这往往效果很好
Other options are using a custom wrapper script around phpunit like @DavidHarkness showed which tends to work out well
或者,如果您不想以自动化方式(或同时使用这两种方法)运行这些测试来执行以下操作:
or, if you don't want to run those tests in an automated way (or use both approaches) to do something like:
$site = getenv('DOMAIN');
if(!$site) {
echo "Enter Domain: ";
$site = fgets(STDIN);
}
让跑步者检查环境,如果没有,请询问您的域.
and have the runner check the environment and if nothing is there ask you for the domain.
几乎所有 php 可以从外部世界获取输入的方式都是如此.
The same goes for pretty much every way that php can take in input from the outside world.
<php>
<define name="DOMAIN" value="http://production.com"/>
</php>
例如,在您使用常量的情况下也可以使用.
also works in case you are using a constant anyways, for example.
这篇关于将变量传递给 PhpUnit的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将变量传递给 PhpUnit
基础教程推荐
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01