{"id":230220,"date":"2022-12-05T18:14:00","date_gmt":"2022-12-05T15:14:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230220"},"modified":"2022-11-09T20:39:27","modified_gmt":"2022-11-09T17:39:27","slug":"naer-clovercoverage-misslyckas-och-gaar-oever-samtidigt","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/naer-clovercoverage-misslyckas-och-gaar-oever-samtidigt\/","title":{"rendered":"N\u00e4r CloverCoverage misslyckas och g\u00e5r \u00f6ver samtidigt"},"content":{"rendered":"\n<p>Jag har pratat om f\u00f6rdelarna med att anv\u00e4nda <strong><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/strong> i <strong><a href=\"https:\/\/tommcfarlin.com\/the-independent-wordpress-developer\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tidigare inl\u00e4gg<\/a><\/strong>. Ett av verktygen som vi har anv\u00e4nt i projekt under det senaste \u00e5ret eller mer \u00e4r <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=\"N\u00e4r CloverCoverage misslyckas och g\u00e5r \u00f6ver samtidigt\" ><\/a><\/p>\n<p>Foto av Quentin REY p\u00e5 Unsplash<\/p>\n<p>En tid mellan n\u00e4r vi b\u00f6rjade anv\u00e4nda det och denna vecka, skulle det alltid misslyckas med att k\u00f6ras varje g\u00e5ng p\u00e5 min lokala dator men inte p\u00e5 den maskin som vi distribuerade v\u00e5r kod till.<\/p>\n<p>Och nej, det berodde inte p\u00e5 att det fanns felaktiga direktiv eller kommentarer i enhetstesterna och det var inte f\u00f6r att <strong><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPUnit<\/a><\/strong> var felkonfigurerat (det k\u00f6rde alla tester och rapporterade dem som f\u00f6rv\u00e4ntat).<\/p>\n<p>S\u00e5 vad ger?<\/p>\n<h2>N\u00e4r CloverCoverage misslyckas<\/h2>\n<p>TL;DR-versionen av detta:<\/p>\n<p>Du m\u00e5ste ha <strong><a href=\"https:\/\/xdebug.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Xdebug<\/a><\/strong> korrekt installerat eftersom CloverCoverage kr\u00e4ver en drivrutin \u2013 det vill s\u00e4ga Xdebug \u2013 f\u00f6r att k\u00f6ras korrekt. Problemet \u00e4r att om du anv\u00e4nder <strong><a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Homebrew<\/a><\/strong> kan du inte installera det som vi kunde p\u00e5 en g\u00e5ng.<\/p>\n<p>Resten av det h\u00e4r inl\u00e4gget kommer att leda dig genom att installera Xdebug, konfigurera det korrekt i din PHP-konfiguration, st\u00e4lla in din PHPUnit-konfiguration p\u00e5 r\u00e4tt s\u00e4tt och sedan verifiera att allt checkar ut s\u00e5 n\u00e4sta g\u00e5ng du k\u00f6r GrumPHP b\u00f6r du f\u00e5 alla gr\u00f6na bockar .<\/p>\n<p>Och, som en extra bonus, n\u00e4sta g\u00e5ng du k\u00f6r PHPUnit, b\u00f6r du f\u00e5 en snygg rapport f\u00f6r att g\u00e5 med p\u00e5 det. H\u00e4r \u00e4r vad du beh\u00f6ver g\u00f6ra.<\/p>\n<p>Observera f\u00f6rst att detta bygger p\u00e5 tanken att du \u00e4r:<\/p>\n<ul>\n<li>anv\u00e4nder Homebrew,<\/li>\n<li>har PHPUnit installerat,<\/li>\n<li>har PHP 7.1 installerat (jag anv\u00e4nder PHP 7.1.19 n\u00e4r jag skriver detta inl\u00e4gg),<\/li>\n<li>inte har Clover att k\u00f6ra ordentligt.<\/li>\n<\/ul>\n<p>F\u00f6r att verifiera n\u00e5gra saker, k\u00f6r f\u00f6ljande kommando <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-00-phpunit-version-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i terminalen<\/a><\/strong> :<\/p>\n<p>Se till att du k\u00f6r minst 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=\"N\u00e4r CloverCoverage misslyckas och g\u00e5r \u00f6ver samtidigt\" ><\/a><\/p>\n<p>Kontrollera <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-01-php-version-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sedan din PHP-version<\/a><\/strong> :<\/p>\n<p>Och se till att du k\u00f6r \u00e5tminstone PHP 7.1.19 (din utdata g\u00f6r att det inte ser exakt likadant ut som mitt, s\u00e4rskilt n\u00e4r det g\u00e4ller Xdebug, men det \u00e4r po\u00e4ngen med denna punkt).<\/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=\"N\u00e4r CloverCoverage misslyckas och g\u00e5r \u00f6ver samtidigt\" ><\/a><\/p>\n<p>Vid det h\u00e4r laget \u00e4r vi redo att installera Xdebug och b\u00f6rja g\u00f6ra de n\u00f6dv\u00e4ndiga konfigurations\u00e4ndringarna.<\/p>\n<h3>1 Installera Xdebug<\/h3>\n<p>Anledningen till att vi m\u00e5ste installera Xdebug annorlunda \u00e4n tidigare \u00e4r att det inte l\u00e4ngre st\u00f6ds av Homebrew. Inga bekymmer dock, eftersom det \u00e4r lika enkelt att installera via <strong><a href=\"https:\/\/pecl.php.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Pecl<\/a><\/strong>.<\/p>\n<p>F\u00f6r att installera det, skriv <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-02-install-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">in f\u00f6ljande kommando<\/a><\/strong> i din terminal:<\/p>\n<p>Du b\u00f6r d\u00e5 se ett meddelande om att det har installerats och att till\u00e4gget har lagts till i din PHP-konfigurationsfil. Enligt min erfarenhet f\u00e5r Pecl inte det senare steget korrekt.<\/p>\n<h3>2 Leta reda p\u00e5 Xdebug Binary p\u00e5 disken<\/h3>\n<p>F\u00f6r att l\u00f6sa detta m\u00e5ste vi:<\/p>\n<ol>\n<li>hitta den fullst\u00e4ndiga s\u00f6kv\u00e4gen till Xdebug-till\u00e4gget,<\/li>\n<li>placera den fullst\u00e4ndigt kvalificerade s\u00f6kv\u00e4gen till till\u00e4gget i v\u00e5r PHP-konfigurationsfil<\/li>\n<\/ol>\n<p>F\u00f6r att hitta s\u00f6kv\u00e4garna d\u00e4r Xdebug kan finnas, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-04-find-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">anv\u00e4nd f\u00f6ljande kommando<\/a><\/strong> :<\/p>\n<p>Du kan f\u00e5 flera s\u00f6kv\u00e4gar tillbaka (helst b\u00f6r du dock bara f\u00e5 en). Om du f\u00e5r mer \u00e4n en, leta efter den som \u00e4r installerad i s\u00f6kv\u00e4gen som inneh\u00e5ller Pecl-katalogen. <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-05-xdebug-txt\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Det kommer troligen att se ut ungef\u00e4r s\u00e5 h\u00e4r<\/a><\/strong> :<\/p>\n<pre><code>\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so<\/code><\/pre>\n<p>N\u00e4r du f\u00e5r en lista \u00f6ver alla platser <strong>som Xdebug.so<\/strong> \u00e4r installerad, kopiera s\u00f6kv\u00e4gen till filen s\u00e5 att vi kan konfigurera PHP f\u00f6r att referera till den och anv\u00e4nda den p\u00e5 r\u00e4tt s\u00e4tt.<\/p>\n<h3>3 Uppdatera PHPs konfiguration<\/h3>\n<p>D\u00e4refter m\u00e5ste vi uppdatera PHPs konfiguration. Att g\u00f6ra detta \u00e4r enkelt eftersom vi helt enkelt beh\u00f6ver l\u00e4gga till en enda rad i filen PHP.ini. Naturligtvis, om du har flera versioner av PHP som k\u00f6rs, kommer att se till att du l\u00e4gger till detta i r\u00e4tt konfigurationsfil beroende p\u00e5 vilken version av PHP du k\u00f6r.<\/p>\n<p>Om du har flera versioner av PHP som k\u00f6rs p\u00e5 din maskin, kommer du att ha flera versioner av PHP-konfigurationsfilen. Om du har en enda version installerad, kommer du att ha en enda <strong>php.ini<\/strong> -fil.<\/p>\n<p>Detta finns vanligtvis i <strong>\/usr\/local\/etc\/php\/7.1\/<\/strong> som <strong>php.ini\u00a0<\/strong> om du anv\u00e4nder PHP 7.1 men din plats kan vara n\u00e5got annorlunda. Men steget att f\u00f6lja f\u00f6rblir detsamma.<\/p>\n<p>N\u00e4r du har gjort detta, se till att du l\u00e4gger till f\u00f6ljande rad i\u00a0 filen <strong>php.ini\u00a0<\/strong>. Detta kan vara var som helst i filen, egentligen, men kom ih\u00e5g att du m\u00e5ste inkludera den fullt kvalificerade s\u00f6kv\u00e4gen till Xdebug.so. S\u00e5 filen b\u00f6r <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-06-php-ini\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">inneh\u00e5lla denna rad<\/a><\/strong> :<\/p>\n<pre><code>zend_extension=\"\/usr\/local\/lib\/php\/pecl\/20160303\/xdebug.so\"<\/code><\/pre>\n<p>D\u00e4rifr\u00e5n borde allt fungera. Du kan verifiera detta <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-07-verify-xdebug-installation-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">genom att k\u00f6ra<\/a><\/strong> :<\/p>\n<p>Och d\u00e5 b\u00f6r du se f\u00f6ljande meddelande:<\/p>\n<blockquote>\n<p>PHP 7.1.19 (cli) (byggd: Jun 25 2018 10:42:21) (NTS )<br \/>\nCopyright (c) 1997-2018 The PHP Group<br \/>\nZend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies<br \/>\nwith Xdebug v2 .6.0, Copyright (c) 2002-2018, av Derick Rethans<br \/>\nmed Zend OPcache v7.1.19, Copyright (c) 1999-2018, av Zend Technologies<\/p>\n<\/blockquote>\n<p>Notera den fj\u00e4rde raden som inneh\u00e5ller en anteckning om Xdebug. Om du ser detta \u00e4r du bra att g\u00e5.<\/p>\n<h3>4 Konfigurera PHPUnit<\/h3>\n<p>Vid det h\u00e4r laget \u00e4r det sista du beh\u00f6ver g\u00f6ra att se till att filen phpunit.xml \u00e4r korrekt konfigurerad. <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/3961df8f30a0117a363f5e9f0271dbd6#file-08-phpunit-xml\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">H\u00e4r \u00e4r ett enkelt exempel<\/a><\/strong> p\u00e5 hur min ser ut (detta inkluderar \u00e4ven st\u00f6d f\u00f6r Clover):<\/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>D\u00e4refter kan du k\u00f6ra PHPUnit manuellt och se en bra utdata av kodt\u00e4ckning.<\/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=\"N\u00e4r CloverCoverage misslyckas och g\u00e5r \u00f6ver samtidigt\" ><\/a><\/p>\n<p>Eller s\u00e5 kan du k\u00f6ra GrumPHP f\u00f6r att se den fasta gr\u00f6na bocken (f\u00f6rutsatt att dina tester ligger inom det intervall som du har definierat i <strong>grump.yml<\/strong> ).<\/p>\n<h2>Slutresultatet<\/h2>\n<p>\u00c4ven om det kan verka som m\u00e5nga steg (och jag antar att det \u00e4r det), tar det inte l\u00e5ng tid att f\u00e5 den h\u00e4r installationen och att fungera ordentligt. F\u00f6rhoppningsvis kommer genomg\u00e5ngen ovan att spara dig lite tid n\u00e4r du arbetar med PHP, PHPUnit och s\u00e5 vidare n\u00e4r CloverCoverage misslyckas (och lyckas samtidigt under kontinuerlig drifts\u00e4ttning).<\/p>\n<p>Jag h\u00e5ller f\u00f6r n\u00e4rvarande p\u00e5 att skriva en e-bok (tillsammans med en m\u00e4ngd annat premiuminneh\u00e5ll). Om du \u00e4r intresserad, <a href=\"https:\/\/tommcfarlin.com\/registration-info\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kolla in vad du f\u00e5r<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>F\u00f6ljande genomg\u00e5ng b\u00f6r spara dig lite tid n\u00e4r du arbetar med PHP, PHPUnit och s\u00e5 vidare n\u00e4r CloverCoverage misslyckas (och lyckas samtidigt under kontinuerlig drifts\u00e4ttning) s\u00e5 att du vet vad du g\u00f6r f\u00f6r att PHPUnit och Clover ska k\u00f6ras korrekt p\u00e5 ditt system .<\/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":[807],"tags":[1173],"class_list":["post-230220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=230220"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/230220\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/162831"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=230220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=230220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=230220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}