{"id":212,"date":"2009-11-11T22:23:01","date_gmt":"2009-11-11T20:23:01","guid":{"rendered":"http:\/\/fabianpiau.com\/?p=212"},"modified":"2020-04-10T13:05:18","modified_gmt":"2020-04-10T12:05:18","slug":"do-you-need-a-good-cover-for-this-winter-eclemma","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/","title":{"rendered":"EclEmma &#8211; Do you need a good cover for this winter ?"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/\" title=\"Lire en fran\u00e7ais\"><strong class=\"labellang\"><span class=\"fr\">&nbsp;<\/span>Version fran\u00e7aise disponible<\/strong><\/a><\/p>\n<div class=\"info\"><strong class=\"label\">Note<\/strong><br \/>\nThe official EclEmma website references this article in the <a href=\"https:\/\/www.eclemma.org\/resources.html\" title=\"Official Resources EclEmma\" target=\"_blank\" rel=\"noopener noreferrer\">&#8220;Blog Entries About EclEmma&#8221;<\/a> category.\n<\/div>\n<h4>Improve your code coverage with Emma<\/h4>\n<p>In this new article, I introduce you the <a href=\"https:\/\/www.eclemma.org\/\" target=\"_blank\" title=\"EclEmma\" rel=\"noopener noreferrer\">EclEmma<\/a> plug-in (contraction of Eclipse &#038; Emma), <a href=\"http:\/\/emma.sourceforge.net\/\" target=\"_blank\" title=\"Emma\" rel=\"noopener noreferrer\">Emma<\/a> is a free code coverage tool for the Java programming language. Of course, EclEmma is its porting under Eclipse.<\/p>\n<p>I am using it since several weeks now and&#8230; I am wondering how I manage without it until now.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<h4>Plug-in installation<\/h4>\n<p>From your Eclipse menu, select Help -> Install New Software&#8230; -> Add site. The update site is http:\/\/update.eclemma.org\/. To complete and finish the installation, Eclipse has to be restarted.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<h4>How to use this software ?<\/h4>\n<p>To run your unit-tests, you right-click on a package, a test suite or a test case, in the menu select Run As -> JUnit Test.<\/p>\n<p>To run your test(s) with EclEmma in order to check the coverage rate, what you have to do is very similar. You only have to use the new submenu &#8220;Coverage As&#8221; instead of &#8220;Run As&#8221;. You can note that it is possible to use the coverage launcher button in the toolbar (Java perspective), but I&#8217;d prefer the menu.<\/p>\n<div style=\"max-width: 193px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_01.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Coverage launcher button\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_01.png?resize=183%2C109&#038;ssl=1\" alt=\"Coverage launcher button\" title=\"Coverage launcher button\" width=\"183\" height=\"109\" class=\"size-full wp-image-268\" \/><\/a><p class=\"wp-caption-text\">Coverage launcher button<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<h4>Full presentation<\/h4>\n<p>Here is an example, step by step, to see how it is working. In the same time, we are going to talk about <a href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/08\/03\/test-driven-development\/\" title=\"TDD\">Test-driven Development<\/a>.<\/p>\n<p>So, we want to implement the following functionnality: the conversion of a raw text into a properly formated HTML text. The example will be based on the french language because we use much more special characters. This is a classical &#038; easy stuff to do, but just perfect to present EclEmma.<\/p>\n<p>Let&#8217;s start by writting our first test to manage the accents management (\u00e9, \u00e8, \u00e0, \u00f9 and so on) .<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_02_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Our first test\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_02_en_redim.png?resize=584%2C233&#038;ssl=1\" alt=\"Our first test\" title=\"Our first test\" width=\"584\" height=\"233\" class=\"size-full wp-image-269\" \/><\/a><p class=\"wp-caption-text\">Our first test<\/p><\/div>\n<p>At this stage, the test is not compiling at all. Let&#8217;s implement just the code we need in order our test successfully compile.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>After creating the &#8220;ConvertToHtml&#8221; class and its &#8220;convert&#8221; method, we can run the test.<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_03_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"The code needed for our test to compile\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_03_en.png?resize=584%2C302&#038;ssl=1\" alt=\"The code needed for our test to compile\" title=\"The code needed for our test to compile\" width=\"584\" height=\"302\" class=\"size-full wp-image-270\" \/><\/a><p class=\"wp-caption-text\">The code needed for our test to compile<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>Like we expected, test is failing.<\/p>\n<div style=\"max-width: 416px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_04.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"A failing test\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_04.png?resize=406%2C97&#038;ssl=1\" alt=\"A failing test\" title=\"A failing test\" width=\"406\" height=\"97\" class=\"size-full wp-image-271\" \/><\/a><p class=\"wp-caption-text\">A failing test<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>Let&#8217;s implement the &#8220;convert&#8221; method.<\/p>\n<div style=\"max-width: 540px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_05_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"The code needed to pass the test\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_05_en.png?resize=530%2C258&#038;ssl=1\" alt=\"The code needed to pass the test\" title=\"The code needed to pass the test\" width=\"530\" height=\"258\" class=\"size-full wp-image-272\" \/><\/a><p class=\"wp-caption-text\">The code needed to pass the test<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>Now, test is passing. Enjoy the green light!<\/p>\n<div style=\"max-width: 417px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_06.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Test is passing\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_06.png?resize=407%2C97&#038;ssl=1\" alt=\"Test is passing\" title=\"Test is passing\" width=\"407\" height=\"97\" class=\"size-full wp-image-273\" \/><\/a><p class=\"wp-caption-text\">Test is passing<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>But the implemented code is not perfect, it needs some refactoring.<\/p>\n<div style=\"max-width: 540px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_07_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Code refactoring\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_07_en.png?resize=530%2C272&#038;ssl=1\" alt=\"Code refactoring\" title=\"Code refactoring\" width=\"530\" height=\"272\" class=\"size-full wp-image-274\" \/><\/a><p class=\"wp-caption-text\">Code refactoring<\/p><\/div>\n<p>Let&#8217;s check out if the test is still passing. Yes, it does.<\/p>\n<p>At this point, you can wonder: Ok, I know that my code is enough to pass the test. But, how to be sure I haven&#8217;t written too much code. Some lines of code I have never tested in my test&#8230;<\/p>\n<p>The solution is obviously EclEmma. So, we run the test using the coverage checker in EclEmma.<\/p>\n<div style=\"max-width: 540px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_08_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Our code is fully covered\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_08_en.png?resize=530%2C275&#038;ssl=1\" alt=\"Our code is fully covered\" title=\"Our code is fully covered\" width=\"530\" height=\"275\" class=\"size-full wp-image-275\" \/><\/a><p class=\"wp-caption-text\">Our code is fully covered<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>The covered code is highlighted in green. In this case, our code in fully tested. <\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_09_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"The test is covered too\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_09_en_redim.png?resize=584%2C235&#038;ssl=1\" alt=\"The test is covered too\" title=\"The test is covered too\" width=\"584\" height=\"235\" class=\"size-full wp-image-276\" \/><\/a><p class=\"wp-caption-text\">The test is covered too<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>Moreover, you can access to the coverage view. The coverage rate is 100%. Great !<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_10.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"The EclEmma coverage view\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_10_redim.png?resize=584%2C174&#038;ssl=1\" alt=\"The EclEmma coverage view\" title=\"The EclEmma coverage view\" width=\"584\" height=\"174\" class=\"size-full wp-image-277\" \/><\/a><p class=\"wp-caption-text\">The EclEmma coverage view<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>I have to admit that, on this kind of example, this is not so difficult to get the highest rate. But, keep in mind, the usefulness of such tool when you are working on a big project whith several hundred thousand lines of code and thousand of tests.<\/p>\n<p>For this online tutorial, I&#8217;m going to do some bad stuff and go against TDD principles. Let&#8217;s bring some modifications to the application code without having written a new test. <\/p>\n<div style=\"max-width: 529px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_11_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"New piece of code\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_11_en.png?resize=519%2C236&#038;ssl=1\" alt=\"New piece of code\" title=\"New piece of code\" width=\"519\" height=\"236\" class=\"size-full wp-image-278\" \/><\/a><p class=\"wp-caption-text\">New piece of code<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>And rerun the test with EclEmma.<\/p>\n<div style=\"max-width: 539px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_12_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"The code is not fully covered anymore\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_12_en.png?resize=529%2C357&#038;ssl=1\" alt=\"The code is not fully covered anymore\" title=\"The code is not fully covered anymore\" width=\"529\" height=\"357\" class=\"size-full wp-image-279\" \/><\/a><p class=\"wp-caption-text\">The code is not fully covered anymore<\/p><\/div>\n<p>The coverage rate is now at 95%. EclEmma shows us that what we added is clearly a not-tested code. The corresponding lines of code are highlighted in red. Thanks to EclEmma, we get the feedback that the test is not complete. <\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>After a glance at the coverage view, I know exactly which files are concerned. That&#8217;s not as funny as it has to be, because I have only two files in my project.<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_13.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"The EclEmma coverage view\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_13_redim.png?resize=584%2C177&#038;ssl=1\" alt=\"The EclEmma coverage view\" title=\"The EclEmma coverage view\" width=\"584\" height=\"177\" class=\"size-full wp-image-280\" \/><\/a><p class=\"wp-caption-text\">The EclEmma coverage view<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>To continue the example, we can add a new test to test the successful no-conversion of a text which has not to be converted in HTML format.<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_14_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"A second test\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_14_en_redim.png?resize=584%2C138&#038;ssl=1\" alt=\"A second test\" title=\"A second test\" width=\"584\" height=\"138\" class=\"size-full wp-image-281\" \/><\/a><p class=\"wp-caption-text\">A second test<\/p><\/div>\n<p>I benefit from the time spent to think how to built my test to improve my code by deleting the prefix in the output text, and extract it as a constant.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>I use EclEmma again and&#8230; We are back to a 100% coverage rate, all is successfully tested, and my code do exactly what I want (no more and no less).<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_15_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Back to an optimal coverage\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_15_en_redim.png?resize=584%2C403&#038;ssl=1\" alt=\"Back to an optimal coverage\" title=\"Back to an optimal coverage\" width=\"584\" height=\"403\" class=\"size-full wp-image-282\" \/><\/a><p class=\"wp-caption-text\">Back to an optimal coverage<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>Once again, and for teaching (of course), we modify the application code without modifying or creating a test. Now we suppose we use a no-conversion suffix and not only a prefix. We run tests again. Oh, nice colors !<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_16_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"A partly covered line\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_16_en_redim.png?resize=584%2C347&#038;ssl=1\" alt=\"A partly covered line\" title=\"A partly covered line\" width=\"584\" height=\"347\" class=\"size-full wp-image-283\" \/><\/a><p class=\"wp-caption-text\">A partly covered line<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>A line of code is highlighted in yellow, it means this line is partly tested. We can arrange the code a bit to have a better understanding of this situation: let&#8217;s divide this line in two parts.<\/p>\n<div style=\"max-width: 594px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_17_en.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Explanations on a partly covered line\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_17_en_redim.png?resize=584%2C511&#038;ssl=1\" alt=\"Explanations on a partly covered line\" title=\"Explanations on a partly covered line\" width=\"584\" height=\"511\" class=\"size-full wp-image-284\" \/><\/a><p class=\"wp-caption-text\">Explanations on a partly covered line<\/p><\/div>\n<p>In fact, we go through the first part of the AND but not in the second one (Why ? Because the first part has returned false).<\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>A line of code can get the following color code:<\/p>\n<ul>\n<li><font color=\"green\"><strong>Green:<\/strong><\/font> Line is fully covered, a test (at least) execute this line;<\/li>\n<li><font color=\"#F24E4E\"><strong>Red:<\/strong><\/font> Line has not been executed at all, you have to write a new test;<\/li>\n<li><font color=\"#CAC41D\"><strong>Yellow:<\/strong><\/font> Line is partly covered, it contains covered code and not-covered code. You can arrange code, like I did, to know which code you need to test.<\/li>\n<\/ul>\n<p><br clear=\"none\" \/><\/p>\n<p>EclEmma provides two different coverage rates, the one on the business code (this is the most important rate, the one which needs to be monitored and be improved), and also a rate on tests itselves. This one is also useful, because showing you the lines of code not executed in your tests. In other words, it helps you to refactor your tests.<\/p>\n<p><br clear=\"none\" \/><\/p>\n<p>Lastly, you can check out for other measures. For each Java element (Java project, source folder, package, type or method) EclEmma provides a Coverage property page summarizing all coverage counters. You can access to this page on the project properties. These figures can be useful for the developer, the project manager, or be part of a customer report.<\/p>\n<div style=\"max-width: 601px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_18.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Coverage properties\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_18.png?resize=591%2C397&#038;ssl=1\" alt=\"Coverage properties\" title=\"Coverage properties\" width=\"591\" height=\"397\" class=\"size-full wp-image-285\" \/><\/a><p class=\"wp-caption-text\">Coverage properties<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<p>I think EclEmma default configuration is good and enough. Nevertheless, you can modify some options such as the color highlighting or add the rate on each file in the package explorer view (see below).<\/p>\n<div style=\"max-width: 433px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_19.png?ssl=1\" rel=\"shadowbox[sbpost-212];player=img;\" title=\"Adding the coverage decorator\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00011\/eclemma_19.png?resize=423%2C234&#038;ssl=1\" alt=\"Adding the coverage decorator\" title=\"Adding the coverage decorator\" width=\"423\" height=\"234\" class=\"size-full wp-image-287\" \/><\/a><p class=\"wp-caption-text\">Adding the coverage decorator<\/p><\/div>\n<p><br clear=\"none\" \/><\/p>\n<h4>Conclusion<\/h4>\n<p>According to me, EclEmma (Emma generally speaking) is an essential software every Java test-unit developers should have in their &#8220;toolbox&#8221;.<\/p>\n<p>It will help you to reach a higher coverage rate (and thus, improve your software quality). Maybe one day, you will succeed in reaching a 100% coverage rate (but&#8230; Nothing is less certain, because the code is not as fully testable as we want it to be&#8230; this is another story&#8230; and especially a different topic). <\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;Version fran\u00e7aise disponible Note The official EclEmma website references this article in the &#8220;Blog Entries About EclEmma&#8221; category. Improve your code coverage with Emma In this new article, I introduce you the EclEmma plug-in (contraction of Eclipse &#038; Emma), Emma is a free code coverage tool for the Java programming language. Of course, EclEmma is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1416,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3],"tags":[55,57,42,56,53,58,61],"class_list":["post-212","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-programming","tag-code-coverage","tag-eclemma","tag-eclipse","tag-emma","tag-java","tag-plugin","tag-unit-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>EclEmma - Do you need a good cover for this winter ? | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available Remarque Cet article est r\u00e9f\u00e9renc\u00e9 sur le site officiel EclEmma dans la cat\u00e9gorie &quot;Blog Entries About EclEmma&quot;. Am\u00e9liorer\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EclEmma - Do you need a good cover for this winter ? | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available Remarque Cet article est r\u00e9f\u00e9renc\u00e9 sur le site officiel EclEmma dans la cat\u00e9gorie &quot;Blog Entries About EclEmma&quot;. Am\u00e9liorer\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2009-11-11T20:23:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-10T12:05:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"268\" \/>\n\t<meta property=\"og:image:height\" content=\"268\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"EclEmma &#8211; Do you need a good cover for this winter ?\",\"datePublished\":\"2009-11-11T20:23:01+00:00\",\"dateModified\":\"2020-04-10T12:05:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/\"},\"wordCount\":2697,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/00011.png?fit=268%2C268&ssl=1\",\"keywords\":[\"code coverage\",\"eclemma\",\"eclipse\",\"emma\",\"java\",\"plugin\",\"unit test\"],\"articleSection\":[\"Agile programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/\",\"name\":\"EclEmma - Do you need a good cover for this winter ? | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/00011.png?fit=268%2C268&ssl=1\",\"datePublished\":\"2009-11-11T20:23:01+00:00\",\"dateModified\":\"2020-04-10T12:05:18+00:00\",\"description\":\"&nbsp;English version available Remarque Cet article est r\u00e9f\u00e9renc\u00e9 sur le site officiel EclEmma dans la cat\u00e9gorie \\\"Blog Entries About EclEmma\\\". Am\u00e9liorer\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/00011.png?fit=268%2C268&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2009\\\/11\\\/00011.png?fit=268%2C268&ssl=1\",\"width\":268,\"height\":268,\"caption\":\"EclEmma\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2009\\\/11\\\/11\\\/do-you-need-a-good-cover-for-this-winter-eclemma\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation agile\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/category\\\/agile-programming\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"EclEmma &#8211; Une bonne couverture pour l&rsquo;hiver\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agility, Java programming, New technologies and more...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"Java developer, Fabian is interested in new technologies and their use within an Agile environment.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EclEmma - Do you need a good cover for this winter ? | CarmaBlog","description":"&nbsp;English version available Remarque Cet article est r\u00e9f\u00e9renc\u00e9 sur le site officiel EclEmma dans la cat\u00e9gorie \"Blog Entries About EclEmma\". Am\u00e9liorer","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/","og_locale":"en_US","og_type":"article","og_title":"EclEmma - Do you need a good cover for this winter ? | CarmaBlog","og_description":"&nbsp;English version available Remarque Cet article est r\u00e9f\u00e9renc\u00e9 sur le site officiel EclEmma dans la cat\u00e9gorie \"Blog Entries About EclEmma\". Am\u00e9liorer","og_url":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2009-11-11T20:23:01+00:00","article_modified_time":"2020-04-10T12:05:18+00:00","og_image":[{"width":268,"height":268,"url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"Written by":"Fabian Piau","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"EclEmma &#8211; Do you need a good cover for this winter ?","datePublished":"2009-11-11T20:23:01+00:00","dateModified":"2020-04-10T12:05:18+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/"},"wordCount":2697,"commentCount":2,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1","keywords":["code coverage","eclemma","eclipse","emma","java","plugin","unit test"],"articleSection":["Agile programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/","url":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/","name":"EclEmma - Do you need a good cover for this winter ? | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1","datePublished":"2009-11-11T20:23:01+00:00","dateModified":"2020-04-10T12:05:18+00:00","description":"&nbsp;English version available Remarque Cet article est r\u00e9f\u00e9renc\u00e9 sur le site officiel EclEmma dans la cat\u00e9gorie \"Blog Entries About EclEmma\". Am\u00e9liorer","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/"]]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1","width":268,"height":268,"caption":"EclEmma"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/en\/2009\/11\/11\/do-you-need-a-good-cover-for-this-winter-eclemma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/en\/"},{"@type":"ListItem","position":2,"name":"Programmation agile","item":"https:\/\/blog.fabianpiau.com\/en\/category\/agile-programming\/"},{"@type":"ListItem","position":3,"name":"EclEmma &#8211; Une bonne couverture pour l&rsquo;hiver"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/en\/#website","url":"https:\/\/blog.fabianpiau.com\/en\/","name":"CarmaBlog","description":"Agility, Java programming, New technologies and more...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"Java developer, Fabian is interested in new technologies and their use within an Agile environment.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":3853,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2009\/11\/00011.png?fit=268%2C268&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-3q","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/comments?post=212"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/212\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media\/1416"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media?parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/categories?post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/tags?post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}