✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Quando CloverCoverage fallisce e passa contemporaneamente

25

Ho parlato dei vantaggi dell’utilizzo di GrumPHP nei post precedenti. Uno degli strumenti che abbiamo utilizzato nei progetti dell’ultimo anno o più è Clover.

Quando CloverCoverage fallisce e passa contemporaneamente

Foto di Quentin REY su Unsplash

A un certo punto da quando abbiamo iniziato a usarlo e questa settimana, non veniva sempre eseguito ogni volta sulla mia macchina locale ma non sulla macchina su cui stavamo distribuendo il nostro codice.

E no, non era perché c’erano direttive o commenti errati negli unit test e non perché PHPUnit era configurato in modo errato (stava eseguendo tutti i test e riportandoli come previsto).

Allora cosa dà?

Quando CloverCoverage fallisce

La versione TL;DR di questo:

È necessario che Xdebug sia installato correttamente perché CloverCoverage richiede un driver, ovvero Xdebug, per essere eseguito correttamente. Il problema è che se stai usando Homebrew, non puoi installarlo come potremmo contemporaneamente.

Il resto di questo post ti guiderà attraverso l’installazione di Xdebug, la sua configurazione corretta all’interno della tua configurazione PHP, la configurazione corretta della tua PHPUnit e quindi la verifica che tutto venga verificato in modo che la prossima volta che esegui GrumPHP, dovresti ottenere tutti i segni di spunta verdi .

E, come bonus aggiuntivo, la prossima volta che esegui PHPUnit, dovresti ottenere un rapporto dall’aspetto gradevole per accompagnarlo. Ecco cosa devi fare.

Innanzitutto, nota che questo si basa sull’idea che sei:

  • usando Homebrew,
  • avere PHPUnit installato,
  • avere PHP 7.1 installato (sto usando PHP 7.1.19 al momento della stesura di questo post),
  • non avere Clover in esecuzione correttamente.

Per verificare alcune cose, esegui il seguente comando nel terminale :

Assicurati di eseguire almeno PHPUnit 7.1.4.

Quando CloverCoverage fallisce e passa contemporaneamente

Quindi, controlla la tua versione di PHP :

E assicurati di eseguire almeno PHP 7.1.19 (il tuo output non assomiglia esattamente al mio, specialmente per quanto riguarda Xdebug, ma questo è il punto di questo punto).

Quando CloverCoverage fallisce e passa contemporaneamente

A questo punto, siamo pronti per installare Xdebug e iniziare ad apportare le modifiche alla configurazione necessarie.

1 Installa Xdebug

Il motivo per cui dobbiamo installare Xdebug in modo diverso rispetto a prima è che non è più supportato da Homebrew. Nessun problema però, poiché è altrettanto facile da installare tramite Pecl.

Per installarlo, inserisci il seguente comando nel tuo terminale:

Dovresti quindi vedere un messaggio che è stato installato e che l’estensione è stata aggiunta al tuo file di configurazione PHP. Nella mia esperienza, Pecl non ottiene l’ultimo passaggio corretto.

2 Individuare il binario Xdebug su disco

Per affrontare questo, dobbiamo:

  1. individuare il percorso completo dell’estensione Xdebug,
  2. inserisci il percorso completo dell’estensione nel nostro file di configurazione PHP

Per trovare i percorsi in cui può risiedere Xdebug, utilizzare il comando seguente :

È possibile che vengano restituiti diversi percorsi (idealmente, tuttavia, dovresti ottenerne solo uno). Se ne ottieni più di uno, cerca quello installato nel percorso che contiene la directory Pecl. Probabilmente assomiglierà a questo :

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

Una volta ottenuto un elenco di tutti i posti in cui Xdebug.so è installato, copia il percorso del file in modo che possiamo configurare PHP per fare riferimento ad esso e usarlo correttamente.

3 Aggiorna la configurazione di PHP

Successivamente, dobbiamo aggiornare la configurazione di PHP. Farlo è facile in quanto dobbiamo semplicemente aggiungere una singola riga al file PHP.ini. Ovviamente, se hai più versioni di PHP in esecuzione, assicurarsi di aggiungerlo al file di configurazione corretto dipenderà dalla versione di PHP in esecuzione.

Se hai più versioni di PHP in esecuzione sul tuo computer, avrai più versioni del file di configurazione PHP. Se hai installato una singola versione, avrai un unico  file php.ini.

Questo si trova in genere in /usr/local/etc/php/7.1/ come php.ini  se stai usando PHP 7.1 ma la tua posizione potrebbe essere leggermente diversa. Ma il passaggio successivo rimane lo stesso.

Dopo averlo fatto, assicurati di aggiungere la seguente riga al  file php.ini . Questo può essere in qualsiasi punto del file, in realtà, ma ricorda che devi includere il percorso completo di Xdebug.so. Quindi il file dovrebbe includere questa riga :

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

Da lì, tutto dovrebbe funzionare. Puoi verificarlo eseguendo :

E quindi dovresti vedere il seguente messaggio:

PHP 7.1.19 (cli) (realizzato: Jun 25 2018 10:42:21) (NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
con Xdebug v2 .6.0, Copyright (c) 2002-2018, di Derick Rethans
con Zend OPcache v7.1.19, Copyright (c) 1999-2018, di Zend Technologies

Nota la quarta riga che include una nota su Xdebug. Se vedi questo, allora sei a posto.

4 Configurazione dell’unità PHP

A questo punto, l’ultima cosa che devi fare è assicurarti che il tuo file phpunit.xml sia configurato correttamente. Ecco un semplice esempio di come appare il mio (questo include anche il supporto per Clover):

<?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>

Successivamente, puoi eseguire manualmente PHPUnit e vedere un buon output di copertura del codice.

Quando CloverCoverage fallisce e passa contemporaneamente

Oppure puoi eseguire GrumPHP per vedere il segno di spunta verde fisso (supponendo che i tuoi test rientrino nell’intervallo che hai definito grump.yml ).

Il risultato finale

Anche se possono sembrare molti passaggi (e suppongo che lo siano), non ci vuole molto per ottenere questa configurazione e funzionare correttamente. Si spera che la procedura dettagliata sopra ti faccia risparmiare un po’ di tempo quando lavori con PHP, PHPUnit e così via quando CloverCoverage fallisce (e riesce contemporaneamente durante la distribuzione continua).

Attualmente sto scrivendo un eBook (insieme a una varietà di altri contenuti premium). Se sei interessato, controlla cosa ottieni.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More