dex*_*vip 6 ant phing continuous-integration phpunit jenkins
我正在使用PHPUnit和Jenkins测试Zend Framework应用程序.我需要覆盖PHPUnit 文件中APPLICATION_ENV使用PHP访问的环境变量:getenvbootstrap.php
<?php
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'testing'));
... use APPLICATION_ENV to pick database, configuration, etc. ...
Run Code Online (Sandbox Code Playgroud)
我有两个环境:( testing对于本地机器)和testing-ci(对于Jenkins机器).如何将变量设置为testing-ci在Jenkins中运行时?有没有办法build.xml为Ant或Phing 设置它?
第1步:将环境变量添加到Jenkins.
根据您的需要打开全局或项目特定的配置页面,并向下扫描环境变量部分.选中该复选框,然后使用" 添加"按钮添加键/值对.
这些将由Jenkins传递给您的Ant构建脚本.
第2步:将它们加载到Ant中.
在Ant build.xml脚本的顶部附近,使用env前缀加载所有环境变量,以便它们不会干扰其他属性.
<property environment="env"/>
Run Code Online (Sandbox Code Playgroud)
现在所有导入的变量都可以使用env前缀,例如${env.HOME}.
第3步:将它们传递给PHPUnit.
假设您正在使用该<exec>任务来运行PHPUnit,您可以使用<env>子元素将每个所需的变量传递给它.
<exec taskname="test" executable="phpunit">
<env key="APPLICATION_ENV" value="${env.APPLICATION_ENV}"/>
...
</exec>
Run Code Online (Sandbox Code Playgroud)
注意:您可能只想尝试第一步,看看Ant是否将环境变量传递给已执行的子进程,但我认为其他两个步骤有助于明确其他开发人员需要什么.