{"id":230809,"date":"2022-12-05T18:35:00","date_gmt":"2022-12-05T15:35:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230809"},"modified":"2022-11-10T00:06:16","modified_gmt":"2022-11-09T21:06:16","slug":"kun-clovercoverage-epaeonnistuu-ja-ohittaa-samanaikaisesti","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/kun-clovercoverage-epaeonnistuu-ja-ohittaa-samanaikaisesti\/","title":{"rendered":"Kun CloverCoverage ep\u00e4onnistuu ja ohittaa samanaikaisesti"},"content":{"rendered":"\n<p>Olen puhunut <strong><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/strong>: n k\u00e4yt\u00f6n eduista <strong><a href=\"https:\/\/tommcfarlin.com\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aiemmissa viesteiss\u00e4<\/a><\/strong>. Yksi ty\u00f6kaluista, joita olemme k\u00e4ytt\u00e4neet projekteissa viimeisen vuoden tai useamman vuoden ajan, on <strong><a href=\"https:\/\/confluence.atlassian.com\/clover\/about-code-coverage-71599496.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Clover<\/a><\/strong>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c1715af.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c1715af.jpg\" alt=\"Kun CloverCoverage ep\u00e4onnistuu ja ohittaa samanaikaisesti\" ><\/a><\/p>\n<p>Kuva Quentin REY Unsplashista<\/p>\n<p>Jonkin ajan kuluttua siit\u00e4, kun aloitimme sen k\u00e4yt\u00f6n, ja t\u00e4m\u00e4n viikon v\u00e4lill\u00e4, se ei aina onnistunut joka kerta paikallisella koneellani, mutta ei koneella, johon otimme k\u00e4ytt\u00f6\u00f6n koodimme.<\/p>\n<p>Ja ei, se ei johtunut siit\u00e4, ett\u00e4 yksikk\u00f6testeiss\u00e4 olisi ollut virheellisi\u00e4 ohjeita tai kommentteja, eik\u00e4 siit\u00e4, ett\u00e4 <strong><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPUnit<\/a><\/strong> oli m\u00e4\u00e4ritetty v\u00e4\u00e4rin (se suoritti kaikki testit ja raportoi niist\u00e4 odotetusti).<\/p>\n<p>Mit\u00e4 siis antaa?<\/p>\n<h2>Kun CloverCoverage ep\u00e4onnistuu<\/h2>\n<p>T\u00e4m\u00e4n TL;DR-versio:<\/p>\n<p>Sinulla on oltava <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong> oikein asennettuna, koska CloverCoverage vaatii ohjaimen \u2013 eli Xdebugin \u2013 toimiakseen oikein. Ongelmana on, ett\u00e4 jos k\u00e4yt\u00e4t <strong><a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew&#8217;ta<\/a><\/strong>, et voi asentaa sit\u00e4 samalla tavalla kuin voisimme.<\/p>\n<p>T\u00e4m\u00e4n postauksen loppuosa opastaa sinut Xdebugin asennuksen l\u00e4pi, sen m\u00e4\u00e4ritt\u00e4misen oikein PHP-asetuksissa, PHPUnit-kokoonpanon m\u00e4\u00e4ritt\u00e4misen oikein ja sitten sen tarkistamisen, ett\u00e4 kaikki on kuitattu, joten kun seuraavan kerran k\u00e4yt\u00e4t GrumPHP:t\u00e4, sinun pit\u00e4isi saada kaikki vihre\u00e4t valintamerkit. .<\/p>\n<p>Ja lis\u00e4bonuksena, kun seuraavan kerran suoritat PHPUnit-ohjelman, sinun pit\u00e4isi saada mukavan n\u00e4k\u00f6inen raportti. T\u00e4ss\u00e4 on mit\u00e4 sinun on teht\u00e4v\u00e4.<\/p>\n<p>Ensinn\u00e4kin huomaa, ett\u00e4 t\u00e4m\u00e4 perustuu ajatukseen, ett\u00e4 olet:<\/p>\n<ul>\n<li>k\u00e4ytt\u00e4m\u00e4ll\u00e4 Homebrew&#8217;ta,<\/li>\n<li>onko PHPUnit asennettuna,<\/li>\n<li>sinulla on PHP 7.1 asennettuna (k\u00e4ytin PHP 7.1.19:\u00e4\u00e4 t\u00e4t\u00e4 viesti\u00e4 kirjoittaessani),<\/li>\n<li>Clover ei toimi kunnolla.<\/li>\n<\/ul>\n<p>Voit tarkistaa muutaman asian suorittamalla seuraavan komennon <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-00-phpunit-version-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">terminaalissa<\/a><\/strong> :<\/p>\n<p>Varmista, ett\u00e4 k\u00e4yt\u00f6ss\u00e4si on v\u00e4hint\u00e4\u00e4n PHPUnit 7.1.4.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c3ef638.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c3ef638.png\" alt=\"Kun CloverCoverage ep\u00e4onnistuu ja ohittaa samanaikaisesti\" ><\/a><\/p>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-01-php-version-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Tarkista<\/a><\/strong> seuraavaksi PHP-versiosi :<\/p>\n<p>Ja varmista, ett\u00e4 k\u00e4yt\u00f6ss\u00e4si on v\u00e4hint\u00e4\u00e4n PHP 7.1.19 (tulostuksesi eiv\u00e4t n\u00e4yt\u00e4 t\u00e4sm\u00e4lleen samalta kuin minun, varsinkin kun se liittyy Xdebugiin, mutta se on t\u00e4m\u00e4n kohdan tarkoitus).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c6881a9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c6881a9.png\" alt=\"Kun CloverCoverage ep\u00e4onnistuu ja ohittaa samanaikaisesti\" ><\/a><\/p>\n<p>T\u00e4ss\u00e4 vaiheessa olemme valmiita asentamaan Xdebugin ja aloittamaan tarvittavien asetusmuutosten tekemisen.<\/p>\n<h3>1 Asenna Xdebug<\/h3>\n<p>Syy, miksi meid\u00e4n on asennettava Xdebug eri tavalla kuin ennen, on se, ett\u00e4 Homebrew ei en\u00e4\u00e4 tue sit\u00e4. Ei kuitenkaan h\u00e4t\u00e4\u00e4, sill\u00e4 se on yht\u00e4 helppo asentaa <strong><a href=\"https:\/\/pecl.php.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Pecl<\/a><\/strong> :n kautta .<\/p>\n<p>Asenna se kirjoittamalla <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-02-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seuraava komento<\/a><\/strong> terminaaliin:<\/p>\n<p>Sinun pit\u00e4isi sitten n\u00e4hd\u00e4 viesti, ett\u00e4 se on asennettu ja ett\u00e4 laajennus on lis\u00e4tty PHP-m\u00e4\u00e4ritystiedostoosi. Kokemukseni mukaan Pecl ei saa j\u00e4lkimm\u00e4ist\u00e4 vaihetta oikein.<\/p>\n<h3>2 Etsi Xdebug-binaari levylt\u00e4<\/h3>\n<p>T\u00e4m\u00e4n ratkaisemiseksi meid\u00e4n on:<\/p>\n<ol>\n<li>etsi Xdebug-laajennuksen koko polku,<\/li>\n<li>sijoita laajennuksen t\u00e4ydellinen polku PHP-m\u00e4\u00e4ritystiedostoomme<\/li>\n<\/ol>\n<p>Voit etsi\u00e4 polut, joilla Xdebug voi sijaita, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-04-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">k\u00e4ytt\u00e4m\u00e4ll\u00e4 seuraavaa komentoa<\/a><\/strong> :<\/p>\n<p>Saatat saada takaisin useita polkuja (ihannetapauksessa sinun pit\u00e4isi kuitenkin saada vain yksi). Jos saat useamman kuin yhden, etsi asennettuna polku, joka sis\u00e4lt\u00e4\u00e4 Pecl-hakemiston. <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-05-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Se n\u00e4ytt\u00e4\u00e4 todenn\u00e4k\u00f6isesti t\u00e4lt\u00e4<\/a><\/strong> :<\/p>\n<pre><code>\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so<\/code><\/pre>\n<p>Kun saat luettelon kaikista paikoista\u00a0, joissa <strong>Xdebug.so<\/strong> on asennettu, kopioi tiedoston polku, jotta voimme m\u00e4\u00e4ritt\u00e4\u00e4 PHP:n viittaamaan siihen ja k\u00e4ytt\u00e4m\u00e4\u00e4n sit\u00e4 oikein.<\/p>\n<h3>3 P\u00e4ivit\u00e4 PHP:n asetukset<\/h3>\n<p>Seuraavaksi meid\u00e4n on p\u00e4ivitett\u00e4v\u00e4 PHP:n asetukset. T\u00e4m\u00e4n tekeminen on helppoa, koska meid\u00e4n tarvitsee vain lis\u00e4t\u00e4 yksi rivi PHP.ini-tiedostoon. Tietenkin, jos sinulla on useita PHP-versioita k\u00e4ynniss\u00e4, sen varmistaminen, ett\u00e4 lis\u00e4\u00e4t t\u00e4m\u00e4n oikeaan asetustiedostoon, riippuu k\u00e4ytt\u00e4m\u00e4st\u00e4si PHP-versiosta.<\/p>\n<p>Jos koneessasi on k\u00e4ynniss\u00e4 useita PHP-versioita, sinulla on useita versioita PHP-m\u00e4\u00e4ritystiedostosta. Jos sinulla on yksi versio asennettuna, sinulla on yksi <strong>php.ini<\/strong> &#8211; tiedosto.<\/p>\n<p>T\u00e4m\u00e4 sijaitsee yleens\u00e4 <strong>hakemistossa \/usr\/local\/etc\/php\/7.1\/<\/strong> nimell\u00e4 <strong>php.ini\u00a0<\/strong>, jos k\u00e4yt\u00e4t PHP 7.1:t\u00e4, mutta sijaintisi voi olla hieman erilainen. Mutta seuraava vaihe pysyy samana.<\/p>\n<p>Kun olet tehnyt t\u00e4m\u00e4n, varmista, ett\u00e4 lis\u00e4\u00e4t seuraavan rivin <strong>php.ini\u00a0<\/strong> &#8211; tiedostoon. T\u00e4m\u00e4 voi olla miss\u00e4 tahansa tiedostossa, mutta muista, ett\u00e4 sinun on sis\u00e4llytett\u00e4v\u00e4 t\u00e4ydellinen polku Xdebug.so-tiedostoon. Joten tiedoston pit\u00e4isi <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-06-php-ini\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sis\u00e4lt\u00e4\u00e4 t\u00e4m\u00e4 rivi<\/a><\/strong> :<\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>Sielt\u00e4 kaiken pit\u00e4isi toimia. Voit varmistaa t\u00e4m\u00e4n <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-07-verify-xdebug-installation-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">suorittamalla<\/a><\/strong> :<\/p>\n<p>Ja sitten sinun pit\u00e4isi n\u00e4hd\u00e4 seuraava viesti:<\/p>\n<blockquote>\n<p>PHP 7.1.19 (cli) (rakennettu: 25. kes\u00e4kuuta 2018 10:42:21) (NTS )<br \/>\nTekij\u00e4noikeus (c) 1997-2018 PHP Group<br \/>\nZend Engine v3.1.0, tekij\u00e4noikeus (c) 1998-2018 Zend Technologies<br \/>\nja Xdebug v2 .6.0, tekij\u00e4noikeus (c) 2002-2018, Derick Rethans<br \/>\nja Zend OPcache v7.1.19, tekij\u00e4noikeus (c) 1999-2018, Zend Technologies<\/p>\n<\/blockquote>\n<p>Huomaa nelj\u00e4s rivi, joka sis\u00e4lt\u00e4\u00e4 huomautuksen Xdebugista. Jos n\u00e4et t\u00e4m\u00e4n, olet valmis.<\/p>\n<h3>4 PHPUnitin m\u00e4\u00e4ritt\u00e4minen<\/h3>\n<p>T\u00e4ss\u00e4 vaiheessa viimeinen asia, joka sinun on teht\u00e4v\u00e4, on varmistaa, ett\u00e4 phpunit.xml-tiedostosi on m\u00e4\u00e4ritetty oikein. <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-08-phpunit-xml\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">T\u00e4ss\u00e4 on yksinkertainen esimerkki<\/a><\/strong> siit\u00e4, milt\u00e4 omani n\u00e4ytt\u00e4\u00e4 (t\u00e4m\u00e4 sis\u00e4lt\u00e4\u00e4 my\u00f6s Cloverin tuen):<\/p>\n<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n\n&lt;!-- http:\/\/phpunit.de\/manual\/4.1\/en\/appendixes.configuration.html --&gt;\n&lt;phpunit xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:noNamespaceSchemaLocation=\"http:\/\/schema.phpunit.de\/4.1\/phpunit.xsd\"\n         bootstrap=\".\/tests\/bootstrap.php\"\n         backupGlobals=\"false\"\n         colors=\"true\"\n         convertErrorsToExceptions=\"true\"\n         convertNoticesToExceptions=\"true\"\n         convertWarningsToExceptions=\"true\"\n&gt;\n  &lt;testsuites&gt;\n    &lt;testsuite name=\"Plugin\"&gt;\n      &lt;directory&gt;.\/tests&lt;\/directory&gt;\n      &lt;exclude&gt;.\/tests\/phpunit&lt;\/exclude&gt;\n      &lt;exclude&gt;.\/src\/WordPress\/*.php&lt;\/exclude&gt;\n    &lt;\/testsuite&gt;\n  &lt;\/testsuites&gt;\n\n  &lt;logging&gt;\n    &lt;log type=\"coverage-clover\" target=\".\/coverage-report\/coverage.xml\"&gt;&lt;\/log&gt;\n    &lt;log type=\"coverage-html\" target=\"coverage-report\" lowUpperBound=\"30\" highLowerBound=\"80\"&gt;&lt;\/log&gt;\n    &lt;log type=\"coverage-text\" target=\"php:\/\/stdout\" showUncoveredFiles=\"false\"&gt;&lt;\/log&gt;\n  &lt;\/logging&gt;\n\n  &lt;filter&gt;\n    &lt;whitelist&gt;\n      &lt;directory&gt;.\/src&lt;\/directory&gt;\n    &lt;\/whitelist&gt;\n  &lt;\/filter&gt;\n&lt;\/phpunit&gt;<\/code><\/pre>\n<p>Seuraavaksi voit suorittaa PHPUnitin manuaalisesti ja n\u00e4hd\u00e4 mukavan koodin kattavuuden.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c93ef83.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-162830-61e745c93ef83.png\" alt=\"Kun CloverCoverage ep\u00e4onnistuu ja ohittaa samanaikaisesti\" ><\/a><\/p>\n<p>Tai voit suorittaa GrumPHP:n n\u00e4hd\u00e4ksesi tasaisen vihre\u00e4n valintamerkin (olettaen, ett\u00e4 testisi ovat <strong>grump.yml -tiedostossa<\/strong> m\u00e4\u00e4ritt\u00e4m\u00e4si alueen sis\u00e4ll\u00e4 ).<\/p>\n<h2>Lopputulos<\/h2>\n<p>Vaikka se saattaa tuntua monilta vaiheilta (ja oletan, ett\u00e4 se on), ei kest\u00e4 kauan saada t\u00e4m\u00e4 asetus toimimaan kunnolla. Toivottavasti yll\u00e4 oleva esittely s\u00e4\u00e4st\u00e4\u00e4 hieman aikaa ty\u00f6skennelless\u00e4si PHP:n, PHPUnitin ja niin edelleen, kun CloverCoverage ep\u00e4onnistuu (ja onnistuu samanaikaisesti jatkuvan k\u00e4ytt\u00f6\u00f6noton aikana).<\/p>\n<p>Kirjoitan t\u00e4ll\u00e4 hetkell\u00e4 e-kirjaa (monenlaisen muun premium-sis\u00e4ll\u00f6n ohella). Jos olet kiinnostunut, <a href=\"https:\/\/tommcfarlin.com\/registration-info\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">katso mit\u00e4 saat<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seuraavan ohjeen pit\u00e4isi s\u00e4\u00e4st\u00e4\u00e4 hieman aikaa ty\u00f6skennelless\u00e4si PHP:n, PHPUnitin ja niin edelleen, kun CloverCoverage ep\u00e4onnistuu (ja onnistuu samanaikaisesti jatkuvan k\u00e4ytt\u00f6\u00f6noton aikana), jotta tied\u00e4t mit\u00e4 teet, jotta PHPUnit ja Clover toimivat oikein j\u00e4rjestelm\u00e4ss\u00e4si .<\/p>\n","protected":false},"author":1,"featured_media":162831,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[803],"tags":[1166],"class_list":["post-230809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=230809"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230809\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/162831"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}