$_SERVER['DOCUMENT_ROOT']
può anche essere impostata nel file Bootstrap e lo stesso Bootstrap_test.php
è allegato al file di configurazione PHPUnit phpunit.xml
con l'attributo name bootstrap=Bootstrap_test.php
sono stato in grado di raggiungere il requisito per impostare $ _SERVER [ 'DOCUMENT_ROOT'] per la configurazione del lavoro di Jenkins. Il "Bootstrap_test.php" si presenta come
<phpunit
backupGlobals="false"
backupStaticAttributes="false"
strict="true"
verbose="true"
bootstrap="Bootstrap_test.php">
<testsuites>
<testsuite name="PHPUnit Test Suite">
<file>PHPUnitTest.php</file>
</testsuite>
</testsuites>
<logging>
<log type="coverage-clover" target="logs/clover.xml"/>
</logging>
</phpunit>
e il contenuto in Bootstrap.php
si dichiara usando define()
funzione:
define('BASE_PATH', realpath(dirname(__FILE__)));
$_SERVER['DOCUMENT_ROOT'] = BASE_PATH;
La variabile BASE_PATH
deterrà di norma il percorso completo della directory di lavoro Jenkins. Dì, il nome del lavoro Jenkins è Test_Job
. La directory in cui Jenkins inserirà il codice sorgente del progetto è /var/lib/jenkins/jobs/Test_Job/workspace
(assumendo la directory di lavoro di jenkins come /var/lib/jenkins
).
Se Bootstrap_test.php viene inserito nella directory di base, BASE_PATH
si terrà /var/lib/jenkins/jobs/Test_Job/workspace
e infine impostato su $_SERVER['DOCUMENT_ROOT']
.
fonte
2013-10-03 09:19:38
Il problema diventa, come posso includere il file che contiene questa classe? –
Ah OK - Vedo il problema ... Ho leggermente frainteso il reale background della tua domanda. Non dovresti fare affidamento sull'inclusione di file usando qualsiasi variabile d'ambiente (incluso '$ _SERVER ['DOCUMENT_ROOT']'). Potrebbe essere possibile includere i file utilizzando percorsi relativi, ad es. 'require_once dirname (__ FILE__). '/ MyClass.php''? D'altra parte è possibile impostare una sorta di autoloading ... –