✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kun CloverCoverage epäonnistuu ja ohittaa samanaikaisesti

10

Olen puhunut GrumPHP: n käytön eduista aiemmissa viesteissä. Yksi työkaluista, joita olemme käyttäneet projekteissa viimeisen vuoden tai useamman vuoden ajan, on Clover.

Kun CloverCoverage epäonnistuu ja ohittaa samanaikaisesti

Kuva Quentin REY Unsplashista

Jonkin ajan kuluttua siitä, kun aloitimme sen käytön, ja tämän viikon välillä, se ei aina onnistunut joka kerta paikallisella koneellani, mutta ei koneella, johon otimme käyttöön koodimme.

Ja ei, se ei johtunut siitä, että yksikkötesteissä olisi ollut virheellisiä ohjeita tai kommentteja, eikä siitä, että PHPUnit oli määritetty väärin (se suoritti kaikki testit ja raportoi niistä odotetusti).

Mitä siis antaa?

Kun CloverCoverage epäonnistuu

Tämän TL;DR-versio:

Sinulla on oltava Xdebug oikein asennettuna, koska CloverCoverage vaatii ohjaimen – eli Xdebugin – toimiakseen oikein. Ongelmana on, että jos käytät Homebrew’ta, et voi asentaa sitä samalla tavalla kuin voisimme.

Tämän postauksen loppuosa opastaa sinut Xdebugin asennuksen läpi, sen määrittämisen oikein PHP-asetuksissa, PHPUnit-kokoonpanon määrittämisen oikein ja sitten sen tarkistamisen, että kaikki on kuitattu, joten kun seuraavan kerran käytät GrumPHP:tä, sinun pitäisi saada kaikki vihreät valintamerkit. .

Ja lisäbonuksena, kun seuraavan kerran suoritat PHPUnit-ohjelman, sinun pitäisi saada mukavan näköinen raportti. Tässä on mitä sinun on tehtävä.

Ensinnäkin huomaa, että tämä perustuu ajatukseen, että olet:

  • käyttämällä Homebrew’ta,
  • onko PHPUnit asennettuna,
  • sinulla on PHP 7.1 asennettuna (käytin PHP 7.1.19:ää tätä viestiä kirjoittaessani),
  • Clover ei toimi kunnolla.

Voit tarkistaa muutaman asian suorittamalla seuraavan komennon terminaalissa :

Varmista, että käytössäsi on vähintään PHPUnit 7.1.4.

Kun CloverCoverage epäonnistuu ja ohittaa samanaikaisesti

Tarkista seuraavaksi PHP-versiosi :

Ja varmista, että käytössäsi on vähintään PHP 7.1.19 (tulostuksesi eivät näytä täsmälleen samalta kuin minun, varsinkin kun se liittyy Xdebugiin, mutta se on tämän kohdan tarkoitus).

Kun CloverCoverage epäonnistuu ja ohittaa samanaikaisesti

Tässä vaiheessa olemme valmiita asentamaan Xdebugin ja aloittamaan tarvittavien asetusmuutosten tekemisen.

1 Asenna Xdebug

Syy, miksi meidän on asennettava Xdebug eri tavalla kuin ennen, on se, että Homebrew ei enää tue sitä. Ei kuitenkaan hätää, sillä se on yhtä helppo asentaa Pecl :n kautta .

Asenna se kirjoittamalla seuraava komento terminaaliin:

Sinun pitäisi sitten nähdä viesti, että se on asennettu ja että laajennus on lisätty PHP-määritystiedostoosi. Kokemukseni mukaan Pecl ei saa jälkimmäistä vaihetta oikein.

2 Etsi Xdebug-binaari levyltä

Tämän ratkaisemiseksi meidän on:

  1. etsi Xdebug-laajennuksen koko polku,
  2. sijoita laajennuksen täydellinen polku PHP-määritystiedostoomme

Voit etsiä polut, joilla Xdebug voi sijaita, käyttämällä seuraavaa komentoa :

Saatat saada takaisin useita polkuja (ihannetapauksessa sinun pitäisi kuitenkin saada vain yksi). Jos saat useamman kuin yhden, etsi asennettuna polku, joka sisältää Pecl-hakemiston. Se näyttää todennäköisesti tältä :

/usr/local/lib/php/pecl/20160303/xdebug.so

Kun saat luettelon kaikista paikoista , joissa Xdebug.so on asennettu, kopioi tiedoston polku, jotta voimme määrittää PHP:n viittaamaan siihen ja käyttämään sitä oikein.

3 Päivitä PHP:n asetukset

Seuraavaksi meidän on päivitettävä PHP:n asetukset. Tämän tekeminen on helppoa, koska meidän tarvitsee vain lisätä yksi rivi PHP.ini-tiedostoon. Tietenkin, jos sinulla on useita PHP-versioita käynnissä, sen varmistaminen, että lisäät tämän oikeaan asetustiedostoon, riippuu käyttämästäsi PHP-versiosta.

Jos koneessasi on käynnissä useita PHP-versioita, sinulla on useita versioita PHP-määritystiedostosta. Jos sinulla on yksi versio asennettuna, sinulla on yksi php.ini – tiedosto.

Tämä sijaitsee yleensä hakemistossa /usr/local/etc/php/7.1/ nimellä php.ini , jos käytät PHP 7.1:tä, mutta sijaintisi voi olla hieman erilainen. Mutta seuraava vaihe pysyy samana.

Kun olet tehnyt tämän, varmista, että lisäät seuraavan rivin php.ini  – tiedostoon. Tämä voi olla missä tahansa tiedostossa, mutta muista, että sinun on sisällytettävä täydellinen polku Xdebug.so-tiedostoon. Joten tiedoston pitäisi sisältää tämä rivi :

zend_extension="/usr/local/lib/php/pecl/20160303/xdebug.so"

Sieltä kaiken pitäisi toimia. Voit varmistaa tämän suorittamalla :

Ja sitten sinun pitäisi nähdä seuraava viesti:

PHP 7.1.19 (cli) (rakennettu: 25. kesäkuuta 2018 10:42:21) (NTS )
Tekijänoikeus (c) 1997-2018 PHP Group
Zend Engine v3.1.0, tekijänoikeus (c) 1998-2018 Zend Technologies
ja Xdebug v2 .6.0, tekijänoikeus (c) 2002-2018, Derick Rethans
ja Zend OPcache v7.1.19, tekijänoikeus (c) 1999-2018, Zend Technologies

Huomaa neljäs rivi, joka sisältää huomautuksen Xdebugista. Jos näet tämän, olet valmis.

4 PHPUnitin määrittäminen

Tässä vaiheessa viimeinen asia, joka sinun on tehtävä, on varmistaa, että phpunit.xml-tiedostosi on määritetty oikein. Tässä on yksinkertainen esimerkki siitä, miltä omani näyttää (tämä sisältää myös Cloverin tuen):

<?xml version="1.0" encoding="UTF-8"?>

<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
         bootstrap="./tests/bootstrap.php"
         backupGlobals="false"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
>
  <testsuites>
    <testsuite name="Plugin">
      <directory>./tests</directory>
      <exclude>./tests/phpunit</exclude>
      <exclude>./src/WordPress/*.php</exclude>
    </testsuite>
  </testsuites>

  <logging>
    <log type="coverage-clover" target="./coverage-report/coverage.xml"></log>
    <log type="coverage-html" target="coverage-report" lowUpperBound="30" highLowerBound="80"></log>
    <log type="coverage-text" target="php://stdout" showUncoveredFiles="false"></log>
  </logging>

  <filter>
    <whitelist>
      <directory>./src</directory>
    </whitelist>
  </filter>
</phpunit>

Seuraavaksi voit suorittaa PHPUnitin manuaalisesti ja nähdä mukavan koodin kattavuuden.

Kun CloverCoverage epäonnistuu ja ohittaa samanaikaisesti

Tai voit suorittaa GrumPHP:n nähdäksesi tasaisen vihreän valintamerkin (olettaen, että testisi ovat grump.yml -tiedostossa määrittämäsi alueen sisällä ).

Lopputulos

Vaikka se saattaa tuntua monilta vaiheilta (ja oletan, että se on), ei kestä kauan saada tämä asetus toimimaan kunnolla. Toivottavasti yllä oleva esittely säästää hieman aikaa työskennellessäsi PHP:n, PHPUnitin ja niin edelleen, kun CloverCoverage epäonnistuu (ja onnistuu samanaikaisesti jatkuvan käyttöönoton aikana).

Kirjoitan tällä hetkellä e-kirjaa (monenlaisen muun premium-sisällön ohella). Jos olet kiinnostunut, katso mitä saat.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja