phpunit testsuite bağımsızlık

0 Cevap php

Ayrı testsuites içinde, listesini bir phpunit yapılandırma dosyası tarafından kontrol edilir var PHPUnit içinde bir dizi test çalıştırıyorum. Testler (yapılandırma dosyası üzerinden değil yani ve bu nedenle bir anda beri testsuite) ayrı ayrı çalıştırmak birlikte çalıştırdığınızda, geçmek ama zaman, ben bir başarısızlık olsun.

Yakın muayene sorunu bu testsuite her (a Require_oncenin yoluyla) bir çerçevede yükleniyor ve bu çerçeve Require_oncenin anda ayarlarına göre bazı iç yapılandırmasını yapar olmasıdır. Bu ayrı phpunit yapılandırma dosyasında listelenen testsuites çalışan arasında, çeşitli şeyler devam ediyorsa, o görünür. Bu özel durumda, çerçeve zaten yüklü olarak görülüyor.

Yani - is there a way of getting phpunit to execute a sequence of testsuites independently, i.e. equivalently to running phpunit on the testsuites one at a time? (phpunit bir otomatik test makinede CruiseControl tarafından tetiklenen ve yerel gönderimleri önce geliştiriciler tarafından ediliyor.) Ben gibi seçenekleri denedim '- süreç tecrit' ve '- no-globallerinin- başarı olmadan yedekleme '.

: Sorunu göstermektedir hızlı örnek bir 'constant.php' dosyası olacaktır

<?php
if (defined('XYZZY')) define('TEST', 1);
else define('TEST', 2);

Bir testsuite 'TestOne.php'

<?php
define('XYZZY', "");
require_once('constant.php');
class TestOne extends PHPUnit_Framework_TestCase
{
   public function testOne()
   {
      $this->assertEquals(TEST, 1);
   }
}

Benzer bir testsuite 'TestTwo.php'

<?php
require_once('constant.php');
class TestTwo extends PHPUnit_Framework_TestCase
{
   public function testTwo()
   {
      $this->assertEquals(TEST, 2);
   }
}

ve bir phpunit yapılandırma dosyası:

<phpunit>
  <testsuites>
    <testsuite name="First">
      <file>./TestOne.php</file>
    </testsuite>

    <testsuite name="Second">
      <file>./TestTwo.php</file>
    </testsuite>
  </testsuites>
</phpunit>

0 Cevap