{"id":156,"date":"2017-09-26T14:57:40","date_gmt":"2017-09-26T21:57:40","guid":{"rendered":"https:\/\/intuitblog.com\/?p=156"},"modified":"2022-11-09T15:27:32","modified_gmt":"2022-11-09T23:27:32","slug":"code-coverage-with-functional-automation-react-istanbul-webdriverio","status":"publish","type":"post","link":"https:\/\/www.intuit.com\/blog\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/","title":{"rendered":"Code Coverage with Functional Automation (React, Istanbul &#038; webdriverIO)"},"content":{"rendered":"<p id=\"789b\" class=\"graf graf--p graf-after--h3\">UI Automation is costly in terms of building and maintenance. A right measure of these suites would ensure we are not ending-up with heavy maintenance state without knowing the actual ROI.<\/p>\n<p id=\"e86b\" class=\"graf graf--p graf-after--p\">A perfect state would be to know the value what these tests provide and quantify them to understand the actual ROI. Here\u2019s what we could do to avoid the routine and measure the Functional Automation tests.<\/p>\n<p id=\"8726\" class=\"graf graf--p graf-after--p\">We(<a href=\"https:\/\/medium.com\/@vasikarla.raj\"class=\"markup--user markup--p-user\"  target=\"_blank\" rel=\"noopener\" target=\"_blank\">Raj Vasikarla<\/a> &amp; <a href=\"https:\/\/medium.com\/@svg7\"class=\"markup--user markup--p-user\"  target=\"_blank\" rel=\"noopener\" target=\"_blank\">Suresh<\/a>) followed the below approach to achieve the same:<\/p>\n<ol class=\"postList\">\n<li id=\"13a5\" class=\"graf graf--li graf-after--p\"><strong class=\"markup--strong markup--li-strong\">Build with Istanbul Instrumentation<\/strong><\/li>\n<li id=\"a5c9\" class=\"graf graf--li graf-after--li\"><strong class=\"markup--strong markup--li-strong\">Run your end-to-end UI Automation Suite<\/strong><\/li>\n<li id=\"b378\" class=\"graf graf--li graf-after--li\"><strong class=\"markup--strong markup--li-strong\">Generate the Coverage<\/strong><\/li>\n<\/ol>\n<p id=\"ee26\" class=\"graf graf--p graf-after--li\"><strong class=\"markup--strong markup--p-strong\">Build &amp; Serve with Istanbul Instrumentation: <\/strong>This is the first step in getting your code prepared for providing useful insights on the test automation code you write for your feature. There are many ways to instrument your react code, I am providing one such method below to instrument your code with istanbul.<\/p>\n<p id=\"df52\" class=\"graf graf--p graf-after--p\">For the below example we assume that there is already a grunt task that will build your react code and for the sake of simplicity we will update the same grunt task to do the necessary instrumentation.<\/p>\n<ol class=\"postList\">\n<li id=\"cea5\" class=\"graf graf--li graf-after--p\">Add the loader for instrumenting the code with istanbul below, using the babel-plugin-istanbul<\/li>\n<\/ol>\n<figure id=\"193f\" class=\"graf graf--figure graf-after--li\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2017\/09\/2a290-1cwpuvh6rhqwkr70gydiyqq.png\" \/><\/div>\n<\/div>\n<\/figure>\n<p id=\"76b0\" class=\"graf graf--p graf-after--figure\">2. Define the filter for the source file including\/excluding the folders which needs to be instrumented.<\/p>\n<figure id=\"dd53\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2017\/09\/dd063-1bjgbjj-eitt3wpckek0big.png\" \/><\/div>\n<\/div>\n<\/figure>\n<p id=\"afaa\" class=\"graf graf--p graf-after--figure\">3. Update the loader<\/p>\n<figure id=\"111b\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2017\/09\/64513-1uskess-wz7o6dinu9hhm4a.png\" \/><\/div>\n<\/div>\n<\/figure>\n<p id=\"b37c\" class=\"graf graf--p graf-after--figure\">This can be verified by checking for \u201c__coverage__\u201d variable in the dev tools console window. If you do see that variable then your instrumentation is successful else it is not successful in which case you need to go back and check the instrumentation.<\/p>\n<p id=\"3c41\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Run end-to-end UI Automation\u00a0: <\/strong>Once the build is instrumented and started we can run UI Automation suites. As there are many UI Automation frameworks available in the open source world, we have decided to use webdriverio for various reasons. WebdriverIO has a bunch of features that allows automation engineers to setup and build an automation suite in no time. Below is an example of how a typical UI Automation test built with webdriverio would like\u00a0:<\/p>\n<figure id=\"5046\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2017\/09\/eb283-1cqeeyrexbq8nlgg9fu6vlw.png\" \/><\/div>\n<\/div>\n<\/figure>\n<p id=\"ef42\" class=\"graf graf--p graf-after--figure\">More examples on how to use webdriverio could be found <a href=\"https:\/\/github.com\/webdriverio\/webdriverio\/tree\/master\/examples\"class=\"markup--anchor markup--p-anchor\"  target=\"_blank\" rel=\"nofollow noopener\" target=\"_blank\">here<\/a>. Once we have a suite of tests to run against the instrumented code, we need to generate the coverage and represent that in a readable format.<\/p>\n<p id=\"6dfb\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Generate the Coverage\u00a0<\/strong>:<\/p>\n<figure id=\"7ade\" class=\"graf graf--figure graf-after--p\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2017\/09\/e6575-1g4rfbz3nhiscjeqzvbjdtq.png\" \/><\/div>\n<\/div>\n<\/figure>\n<p id=\"067d\" class=\"graf graf--p graf-after--figure\">In the above snippet we enhance the webdriverio config file to do the below\u00a0:<\/p>\n<p id=\"9d54\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Generate coverage after each test<\/strong>. We leverage the afterTest() hook from webdriverio and capture the __coverage__ object once every test is completed. Coverage object thus captured is added to an array of coverageObjects at this step.<\/p>\n<p id=\"47ed\" class=\"graf graf--p graf-after--p\"><strong class=\"markup--strong markup--p-strong\">Merge the Overall Coverage\u00a0: <\/strong>At the end of the entire suite, we merge all the coverage information from the coverageObjects and instruct istanbul to generate readable reports. Istanbul provide various formats of reports generation. We have opted \u201chtml\u201d in the above snippet. Below is a screenshot of how a sample report would look like\u00a0:<\/p>\n<figure id=\"8b0f\" class=\"graf graf--figure graf-after--p graf--trailing\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"aspectRatioPlaceholder-fill\"><\/div>\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2017\/09\/05ef9-1x_vjgtseyplzz8gkminhpg.png\" \/><\/div>\n<\/div>\n<\/figure>\n","protected":false},"excerpt":{"rendered":"<p>UI Automation is costly in terms of building and maintenance. A right measure of these suites would ensure we are not ending-up with heavy maintenance state without knowing the actual ROI. A perfect state would be to know the value what these tests provide and quantify them to understand the actual ROI. Here\u2019s what we<\/p>\n","protected":false},"author":75501692,"featured_media":7783,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rkv_browse_by_id":0,"rkv_cta_id":0,"rkv_optimize_for_pagespeed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"useModifiedDate":false,"customPublishDate":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[237496403,237496409,237496405],"tags":[1366,1364],"intuit_collection":[],"intuit_series":[],"coauthors":[1427],"class_list":["post-156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-innovative-thinking","category-tech-innovation","category-thought-leadership","tag-coding","tag-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Code Coverage with Functional Automation (React, Istanbul &amp; webdriverIO) - Intuit Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intuit.com\/blog\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Code Coverage with Functional Automation (React, Istanbul &amp; webdriverIO) - Intuit Blog\" \/>\n<meta property=\"og:description\" content=\"UI Automation is costly in terms of building and maintenance. A right measure of these suites would ensure we are not ending-up with heavy maintenance state without knowing the actual ROI. A perfect state would be to know the value what these tests provide and quantify them to understand the actual ROI. Here\u2019s what we\" \/>\n<meta property=\"og:url\" content=\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\" \/>\n<meta property=\"og:site_name\" content=\"Intuit Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-26T21:57:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-09T23:27:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"rajvasikarla\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rajvasikarla\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\"},\"author\":{\"name\":\"rajvasikarla\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/94efcba36b7a8cc5d794905088783210\"},\"headline\":\"Code Coverage with Functional Automation (React, Istanbul &#038; webdriverIO)\",\"datePublished\":\"2017-09-26T21:57:40+00:00\",\"dateModified\":\"2022-11-09T23:27:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\"},\"wordCount\":485,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp\",\"keywords\":[\"Coding\",\"Technology\"],\"articleSection\":[\"Innovative Thinking\",\"Tech Innovation\",\"Thought Leadership\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\",\"url\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\",\"name\":\"Code Coverage with Functional Automation (React, Istanbul & webdriverIO) - Intuit Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.intuit.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp\",\"datePublished\":\"2017-09-26T21:57:40+00:00\",\"dateModified\":\"2022-11-09T23:27:32+00:00\",\"author\":{\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/94efcba36b7a8cc5d794905088783210\"},\"breadcrumb\":{\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage\",\"url\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp\",\"contentUrl\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/intuitblog.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Code Coverage with Functional Automation (React, Istanbul &#038; webdriverIO)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#website\",\"url\":\"https:\/\/www.intuit.com\/blog\/\",\"name\":\"Intuit Blog\",\"description\":\"Powering Financial Prosperity\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.intuit.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/94efcba36b7a8cc5d794905088783210\",\"name\":\"rajvasikarla\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f5b31bb91ca7fdc5b337503bea7e52680da5e4f2b2ec26eb5560e7eb118c286a?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f5b31bb91ca7fdc5b337503bea7e52680da5e4f2b2ec26eb5560e7eb118c286a?s=96&d=identicon&r=g\",\"caption\":\"rajvasikarla\"},\"url\":\"https:\/\/www.intuit.com\/blog\/author\/rajvasikarla\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Code Coverage with Functional Automation (React, Istanbul & webdriverIO) - Intuit Blog","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:\/\/www.intuit.com\/blog\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/","og_locale":"en_US","og_type":"article","og_title":"Code Coverage with Functional Automation (React, Istanbul & webdriverIO) - Intuit Blog","og_description":"UI Automation is costly in terms of building and maintenance. A right measure of these suites would ensure we are not ending-up with heavy maintenance state without knowing the actual ROI. A perfect state would be to know the value what these tests provide and quantify them to understand the actual ROI. Here\u2019s what we","og_url":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/","og_site_name":"Intuit Blog","article_published_time":"2017-09-26T21:57:40+00:00","article_modified_time":"2022-11-09T23:27:32+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp","type":"image\/webp"}],"author":"rajvasikarla","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rajvasikarla","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#article","isPartOf":{"@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/"},"author":{"name":"rajvasikarla","@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/94efcba36b7a8cc5d794905088783210"},"headline":"Code Coverage with Functional Automation (React, Istanbul &#038; webdriverIO)","datePublished":"2017-09-26T21:57:40+00:00","dateModified":"2022-11-09T23:27:32+00:00","mainEntityOfPage":{"@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/"},"wordCount":485,"commentCount":0,"image":{"@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage"},"thumbnailUrl":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp","keywords":["Coding","Technology"],"articleSection":["Innovative Thinking","Tech Innovation","Thought Leadership"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/","url":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/","name":"Code Coverage with Functional Automation (React, Istanbul & webdriverIO) - Intuit Blog","isPartOf":{"@id":"https:\/\/www.intuit.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage"},"image":{"@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage"},"thumbnailUrl":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp","datePublished":"2017-09-26T21:57:40+00:00","dateModified":"2022-11-09T23:27:32+00:00","author":{"@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/94efcba36b7a8cc5d794905088783210"},"breadcrumb":{"@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#primaryimage","url":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp","contentUrl":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/intuitblog.com\/innovative-thinking\/code-coverage-with-functional-automation-react-istanbul-webdriverio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/intuitblog.com\/"},{"@type":"ListItem","position":2,"name":"Code Coverage with Functional Automation (React, Istanbul &#038; webdriverIO)"}]},{"@type":"WebSite","@id":"https:\/\/www.intuit.com\/blog\/#website","url":"https:\/\/www.intuit.com\/blog\/","name":"Intuit Blog","description":"Powering Financial Prosperity","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intuit.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/94efcba36b7a8cc5d794905088783210","name":"rajvasikarla","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f5b31bb91ca7fdc5b337503bea7e52680da5e4f2b2ec26eb5560e7eb118c286a?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f5b31bb91ca7fdc5b337503bea7e52680da5e4f2b2ec26eb5560e7eb118c286a?s=96&d=identicon&r=g","caption":"rajvasikarla"},"url":"https:\/\/www.intuit.com\/blog\/author\/rajvasikarla\/"}]}},"header_image":"","jetpack_featured_media_url":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/156_197s0jbil1hc2ntuszzq7oq.webp","jetpack_shortlink":"https:\/\/wp.me\/paMY30-2w","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts\/156","targetHints":{"allow":["GET","POST","PUT","PATCH"]}}],"collection":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/users\/75501692"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/comments?post=156"}],"version-history":[{"count":3,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts\/156\/revisions"}],"predecessor-version":[{"id":8180,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts\/156\/revisions\/8180"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/media\/7783"}],"wp:attachment":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/media?parent=156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/categories?post=156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/tags?post=156"},{"taxonomy":"intuit_collection","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/intuit_collection?post=156"},{"taxonomy":"intuit_series","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/intuit_series?post=156"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/coauthors?post=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}