PHPUnit da test ishlarini bajarish tartibi

Men phpunit.xml da tartibda bajarilishi kerak bo'lgan test fayllari ro'yxatini belgilab oldim.

http://phpunit.de/manual/3.7/en/organizing-tests.html#organizing-tests.xml-configurationga ko'ra, test ishining tartibi quyidagicha belgilanishi mumkin:

<phpunit>
  <testsuites>
    <testsuite name="Object_Freezer">
      <file>Tests/Freezer/HashGenerator/NonRecursiveSHA1Test.php</file>
      <file>Tests/Freezer/IdGenerator/UUIDTest.php</file>
      <file>Tests/Freezer/UtilTest.php</file>
      <file>Tests/FreezerTest.php</file>
      <file>Tests/Freezer/StorageTest.php</file>
      <file>Tests/Freezer/Storage/CouchDB/WithLazyLoadTest.php</file>
      <file>Tests/Freezer/Storage/CouchDB/WithoutLazyLoadTest.php</file>
    </testsuite>
  </testsuites>
</phpunit>

Ammo PHPUnit phpunit.xml-dagi konfiguratsiyani e'tiborsiz qoldirib, test holatlarini alifbo tartibida bajarayotganga o'xshaydi.

Men buyurtmani aniqlamoqchiman, chunki men sinov ishimdan biri oxirida bajarilishini xohlayman. Quyida mening kodim:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit 
    colors="true" 
    stopOnFailure="false" 
    forceCoversAnnotation="true"
    bootstrap="../application/third_party/CIUnit/bootstrap_phpunit.php">
    <testsuites>
        <testsuite name="ModelTests">
            <directory suffix=".php">models</directory>
            <file>./models/aa.php</file>
            <file>./models/bb.php</file>
            <file>./models/cc.php</file>
            <file>./models/dd.php</file>
            <file>./models/ab.php</file>
            <file>./models/ac.php</file>
        </testsuite>
    </testsuites>
    <filter>
    <whitelist addUncoveredFilesFromWhitelist="true">
        <directory suffix=".php">models</directory>
    </whitelist>
    </filter>
</phpunit>

phpunit-ni ishga tushirganimda u chop etadi: Konfiguratsiya /var/www/builds/latest/tests/phpunit.xml dan o'qiladi

Har qanday fikr?


person DShah    schedule 03.04.2014    source manba
comment
Konfiguratsiya fayli yuklanganligiga ishonchingiz komilmi? (uni buzishga harakat qiling va xatoga yo'l qo'yganingizni tekshiring)   -  person d.raev    schedule 03.04.2014
comment
Ha, phpunit-ni ishga tushirganimda u chop etadi: Konfiguratsiya /var/www/builds/latest/tests/phpunit.xml dan o'qiladi.   -  person DShah    schedule 03.04.2014
comment
bu savolni tekshiring stackoverflow.com/questions/10228 /   -  person mamdouh alramadan    schedule 03.04.2014


Javoblar (1)


Siz phpunitga test to'plamidan foydalanishni aytishingiz kerak, shunda u testlarni to'g'ri tartibda o'tkazadi. O'ylaymanki, siz testlarni bajarish uchun faqat phpunit . yoki shunga o'xshash narsadan foydalanmoqdasiz. Bunday holda, PHPUnit testlarni yuklaydi va ularni juda tasodifiy tarzda ishlaydi. Siz ko'rsatayotgan tartibdan foydalanish uchun phpunit --testsuite ModelTest ni bajarishingiz kerak. Bu PHPUnit-ga to'plamda ko'rsatilgan tartibdan foydalanishni aytadi.

Biroq, u faqat XML ro'yxatidagi testlarni o'tkazadi, shuning uchun ro'yxatingiz to'liq ekanligiga ishonch hosil qiling.

Bundan tashqari, sharhlardagi bog'langan javobda aytib o'tilganidek, testlaringiz ma'lum bir tartibda bajarilishini talab qilish ideal holat emas. Siz o'zingizning dizayningizni yoki testlaringizni o'zgartirishga harakat qilishingiz kerak, shunda siz ularning ma'lum bir tartibda bajarilishiga bog'liq emassiz.

person Schleis    schedule 04.04.2014
comment
@DShah PHPUnitning qaysi versiyasini ishlayapsiz? Buyruq men uchun 3.7 bilan yaxshi ishlaydi - person Schleis; 04.04.2014
comment
Versiya 3.6.10, men yana 3.7 ni tekshiraman. Aslida men sudo apt-get install phpunit yordamida PHPUnit-ni ubuntu-ga o'rnatdim. Va bu faqat 3.6.10 versiyasini o'rnatadi. - person DShah; 04.04.2014