Nasıl phpunit iskeleti-test öncesi bir küresel ayarlamak için çalıştırılır

2 Cevap php

Biz require_once aramalar için bir yol oluşturmak için kullanılan bizim, başına dosyasında genel bir set. Örneğin:

require_once($GLOBALS['root'].'/library/particleboard/JsonUtil.php');

Sorun Ben Başa eklenen dosya çalıştırmak değil phpunit iskeleti testi oluşturucu, çalıştırdığınızda,, yani küresel atmadı. Ben çalıştırdığınızda

cd /company/trunk/queue/process; phpunit --skeleton-test QueueProcessView

PHPUnit QueueProcessView bir require_oncenin çözmeye çalışır, ancak $ GLOBALS ['root'] asla set beri gerekli dosyayı dahil, ben ölümcül bir hata alıyorum.

Örneğin, PHPUnit için, ne olması gerektiğini

require_once(/code/trunk/library/particleboard/JsonUtil.php)

olarak çözülene

require_once(/library/particleboard/JsonUtil.php)

Eksik kök dikkat edin.

Iskelet-test kodu çalışmadan önce PHP dosyası aramak için bir yol olup olmadığını biliyor mu? Bu ben bu dosyada benim GLOBAL ['root'] ayarlayabilirsiniz.

Herhangi bir diğer yaratıcı çözümler duyacağız.

2 Cevap

Eğer düzenli bir test paketi önyükleyemez gibi Aynı şekilde, aynı zamanda iskelet oluşumu için daha aynı şeyi yapabilirsiniz

phpunit --bootstrap prepend.php --skeleton-test QueueProcessView

Ben üç dosya ile test:

dnm.php:

<?php   
require_once($GLOBALS['root'].'/confirmedToRun.php');
class test
{
   function doStuff()
   {
   }
}

prepend.php:

<?php   
$root = "/tmp/";

confirmedToRun.php:

<?php   
echo __FILE__;

phpunit --bootstrap prepend.php --skeleton-test test iskelet sınıf oluşturmak için Koşu, testTest.php - aynı zamanda confirmedToRun.php dosyasını çalıştırır.

phpunit --bootstrap prepend.php --skeleton-test test
PHPUnit 3.4.2 by Sebastian Bergmann.

/tmp/confirmedToRun.php
Wrote skeleton for "testTest" to "/home/me/tmp/testTest.php".

Tamam, ben bunu anladım. Ben sadece benim referans dahil PHPUnit / Util / test.php dosyasını düzenlenebilir. Çerçevenin kalan bir önyükleme dosyayı aramak için izin beri en zarif çözüm, ama bu bir hack programı ile yaşayabilir değil.