当前位置:  开发笔记 > 编程语言 > 正文

将参数传递给PHPUnit

如何解决《将参数传递给PHPUnit》经验,为你挑选了3个好方法。

我开始编写PHPUnit测试,我希望测试从开发人员机器以及我们的服务器运行.开发人员的计算机设置与服务器不同,甚至彼此不同.

要在这些不同的地方运行,似乎运行测试的人必须指出它在哪里运行.然后,测试可以查找正在运行的机器的正确配置.

我想象的是:

phpunit.bat -X johns_laptop unittest.php

或者在alpha服务器上:

phpunit -X alpha unittest.php

在测试中,我将能够获得"X"(或它是什么)参数的值,并且知道,例如,应用程序根目录的路径是什么.

它看起来不像命令行允许的那样 - 或者我错过了什么?



1> Mark Theunis..:

您可以使用PHPUnit的--bootstrap开关.

--bootstrap        A "bootstrap" PHP file that is run before the tests.

然后,创建一个包含变量的bootstrap.php文件:

$port = 4445;

在测试中,您可以获取这些值:

global $port;
$this->setPort($port);

然后运行:

phpunit --bootstrap boot.php MyTest.php


@WallyLawless有时值不能被硬编码,需要作为CL参数动态发送
我认为这个解决方案比保罗已经选择的答案更恰当地回答了原始问题.这是引导文件的确切目的.
这当然是有用的,但是却遗漏了最初的问题,即如何在命令行中传递参数。

2> Paolo..:

一种方法是检查$ argv和$ argc.就像是:

assertGreaterThan(2, $argc, 'No environment name passed');
            $environment = $argv[2];
    }
}

然后你可以像这样调用你的phpunittest:

phpunit EnvironmentTest.php my-computer



3> scribu..:

将变量传递给引导程序文件以及测试文件的优雅方法是使用环境变量:

export MY_ENV_VAR="some value"

phpunit all

然后,在PHP文件中,您可以像这样访问它:

getenv('MY_ENV_VAR')

资料来源:http://blog.lysender.com/2010/10/phpunit-passing-environment-variable-to-your-application/

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有