{"id":2137,"date":"2018-02-12T04:31:32","date_gmt":"2018-02-12T04:31:32","guid":{"rendered":"http:\/\/www.enprowess.com\/blogs\/?p=2137"},"modified":"2022-02-09T13:30:07","modified_gmt":"2022-02-09T13:30:07","slug":"improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report","status":"publish","type":"post","link":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/","title":{"rendered":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report"},"content":{"rendered":"<p>Arquillian is a Java EE testing platform that performs testing for java classes on containers. Liferay DXP \/ 7 offers Arquillian Liferay extension that can be used to test Liferay plugins along with their OSGI components. In this blog, we will see how we can write and execute Integration test using this extension in Liferay.<\/p>\n<p><strong>Note<\/strong> :\u00a0 Using Arquillian Liferay extension one can write functional tests. In this post,\u00a0we are going to implement integration test.\u00a0 I will post a separate blog on how functional test using Liferay Arquillian extension.<\/p>\n<p>For more Information on Arquillian, you can refer <a href=\"http:\/\/arquillian.org\">http:\/\/arquillian.org.<\/a><\/p>\n<p>Lets start with\u00a0creating Liferay Portlet Skeleton. You may use blade command line (If it is installed on system) or using LR IDE.<\/p>\n<p>Create a package under <strong>src\/main\/java<\/strong> for service related classes.\u00a0Don&#8217;t miss to\u00a0create folders for test classes and resources under <strong>src <\/strong>folder. You can refer a sample structure below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2144\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/1.png\" alt=\"\" width=\"553\" height=\"156\" \/><\/p>\n<p>Define OSGi service interface and its Implementation class inside a package created for service classes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2145\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/2.png\" alt=\"\" width=\"554\" height=\"136\" \/><\/p>\n<p>Next, we will see how Arquillian Liferay extension injects implementing class object using @Inject annotation and performs a test on container at run time.<\/p>\n<p>Create a Test class as follow,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2146\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/3.1.png\" alt=\"\" width=\"551\" height=\"649\" \/><\/p>\n<p>In ArquillianTest.java class, @RunWith(Arquillian.<strong>class<\/strong>) is a JUnit annotation that asks Arquillian to execute test.<\/p>\n<p>Method testAdd() is a test method marked with @Test, that calls getService() method on \u201cdemoService\u201d object and checks for assertion.<\/p>\n<p>Note: \u2019demoService\u2019 variable gets populated with implementation object of DemoService.java interface (DemoServiceImpl.java in our case).<\/p>\n<p>@Deployment must be annotated to a \u2018public static\u2019 method that returns a test archive file (i.e create method above).<\/p>\n<p>ShrinkWrap API creates Test Archive.<\/p>\n<p>For more on ShrinkWrap &#8211; <a href=\"http:\/\/jboss.org\/shrinkwrap\">http:\/\/jboss.org\/shrinkwrap<\/a>.<\/p>\n<p>Name of test archive file is identical to \u2018Bundle-SymbolicName\u2019 in bnd.bnd.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2148\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/4.png\" alt=\"\" width=\"553\" height=\"102\" \/><\/p>\n<p>Set dependencies as below inside plugin\u2019s build.gradle file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2149\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/5.png\" alt=\"\" width=\"553\" height=\"39\" \/><\/p>\n<p>Create arquillian.xml under <strong>src\/testIntegration\/resources <\/strong>package and configure deploymentExportPath as shown below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2150\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/6.png\" alt=\"\" width=\"553\" height=\"115\" \/><\/p>\n<p>Before deploying jar files on\u00a0container, Arquillian exports test archive file (in this case it is <u>com.enprowess.arquillian.example-1.0.0.jar)<\/u>\u00a0 on this path. This file contains all the test related files that can be used for a reference.<\/p>\n<p>Finally, Arquillian uses remote protocol such as JMX for testing purpose. To enable JMX, Set Java runtime Options\u00a0to Tomcat setenv.bat file (setenv.sh on linux machine).<\/p>\n<p>Following image shows runtime options in setenv.bat(windows machine) that enables JMX on port 8099 in Apache Tomcat.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2151\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/7.png\" alt=\"\" width=\"553\" height=\"35\" \/><\/p>\n<p>Arquillian uses JMX API Implementation of\u00a0<strong>Apache Aries JMX<\/strong>. Below are dependencies to install for Apache Aries JMX,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2152\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/8.png\" alt=\"\" width=\"553\" height=\"38\" \/><\/p>\n<p>One can Install them from <strong>Apache Felix gogo shell <\/strong>or by setting gradle tasks in <strong>build.gradle<\/strong> as follows.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2153\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/9.png\" alt=\"\" width=\"553\" height=\"276\" \/><\/p>\n<p>For more Information on installing these dependencies, one can refer <a href=\"https:\/\/dev.liferay.com\/develop\/tutorials\/-\/knowledge_base\/7-0\/arquillian-integration-test-example\">https:\/\/dev.liferay.com\/develop\/tutorials\/-\/knowledge_base\/7-0\/arquillian-integration-test-example<\/a><\/p>\n<p>Now, Let\u2019s configure <strong>Jacoco <\/strong>which is a code coverage library for java. For more information on jacoco, please visit <a href=\"http:\/\/www.eclemma.org\/jacoco\/\">http:\/\/www.eclemma.org\/jacoco\/<\/a><\/p>\n<p>Jacoco requires attaching Jacoco agent to JVM, Configure this runtime options in setenv.bat as\u00a0follow,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2154\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/10.png\" alt=\"\" width=\"553\" height=\"49\" \/><\/p>\n<p>Or, by configuring <strong>setUptestableTocat <\/strong>task in build.gradle as under.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2155\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/11.png\" alt=\"\" width=\"553\" height=\"52\" \/><\/p>\n<p>Next, Add following instructions inside jacoco\u00a0<strong>build.gradle<\/strong> file.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2156\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/12.png\" alt=\"\" width=\"553\" height=\"316\" \/><\/p>\n<p><strong>jacocoTestReport <\/strong>task will run as part of <strong>testIntegration <\/strong>task which starts execution of test. Configuration of <strong>testIntegration <\/strong><\/p>\n<p>Task will look as follow,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2157\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/13.png\" alt=\"\" width=\"553\" height=\"70\" \/><\/p>\n<p>Finally, Configure Liferay server on which Arquillian need to execute tests and put import statements for the classes,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2158\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/14.png\" alt=\"\" width=\"553\" height=\"119\" \/><\/p>\n<p>You can set tomcat startup time as below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2159\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/15.png\" alt=\"\" width=\"553\" height=\"50\" \/><\/p>\n<p>Open a terminal to project root path and execute command as shown under:<\/p>\n<p>gradlew testIntegration<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2160\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/16.png\" alt=\"\" width=\"553\" height=\"121\" \/><\/p>\n<p>It should take few minutes to execute, since it starts liferay tomcat first and runs arquillian test after. It automatically stops tomcat after execution of test.<\/p>\n<p>After successful execution, success message will look like below,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2161\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/17.png\" alt=\"\" width=\"553\" height=\"246\" \/><\/p>\n<p>You can see result on following path,<\/p>\n<p>For <strong>Arquillian <\/strong>Test Execution,<\/p>\n<p>&#8230;\\<strong>arquillian-example-portlet<\/strong>\\build\\reports\\tests\\testIntegration\\index.html<\/p>\n<p>For <strong>Jacoco <\/strong>Coverage,<\/p>\n<p>\u2026\\<strong>arquillian-example-portlet<\/strong>\\build\\reports\\coverage\\index.html.<\/p>\n<p>Jacoco report will look like following test result screenshot,<\/p>\n<p><strong><u>Arquillian Test Result:<\/u><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2163\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/18.png\" alt=\"\" width=\"552\" height=\"165\" \/><\/p>\n<p><strong><u>Jacco Coverage Report:<\/u><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2229\" src=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/19.png\" alt=\"\" width=\"554\" height=\"122\" \/><\/p>\n<p>Hope this is useful.<\/p>\n<p>&nbsp;<\/p>\n<p>Post by,<\/p>\n<p>Ripal Thakkar<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arquillian is a Java EE testing platform that performs testing for java classes on containers. Liferay DXP \/ 7 offers Arquillian Liferay extension that can be used to test Liferay plugins along with their OSGI components. In this blog, we will see how we can write and execute Integration test using this extension in Liferay.&hellip; <a class=\"more-link\" href=\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\">Continue reading <span class=\"screen-reader-text\">Improve unit testing in DXP using Arquillian Extension with Jacoco Report<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2326,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,18],"tags":[93,65,30,31,94],"class_list":["post-2137","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-liferay","category-liferay-dxp","tag-arquillian","tag-integration","tag-liferay-7","tag-liferay-dxp","tag-shrinkwrap","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Improve unit testing in DXP using Arquillian Extension with Jacoco Report - EnProwess<\/title>\n<meta name=\"description\" content=\"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Improve unit testing in DXP using Arquillian Liferay Extension with Jacoco Report\" \/>\n<meta property=\"og:description\" content=\"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\" \/>\n<meta property=\"og:site_name\" content=\"EnProwess\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-12T04:31:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-09T13:30:07+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Improve unit testing in DXP using Arquillian Liferay Extension with Jacoco Report\" \/>\n<meta name=\"twitter:description\" content=\"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.\" \/>\n<meta name=\"twitter:image\" content=\"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"dev_admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#website\",\"url\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/\",\"name\":\"EnProwess\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage\",\"url\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\",\"name\":\"Improve unit testing in DXP using Arquillian Extension with Jacoco Report - EnProwess\",\"isPartOf\":{\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage\"},\"datePublished\":\"2018-02-12T04:31:32+00:00\",\"dateModified\":\"2022-02-09T13:30:07+00:00\",\"author\":{\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#\/schema\/person\/0bf4f9fb6538f60f497377ecceb54f55\"},\"description\":\"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.\",\"breadcrumb\":{\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Improve unit testing in DXP using Arquillian Extension with Jacoco Report\"}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#\/schema\/person\/0bf4f9fb6538f60f497377ecceb54f55\",\"name\":\"dev_admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-content\/uploads\/2021\/05\/p3.png\",\"contentUrl\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-content\/uploads\/2021\/05\/p3.png\",\"caption\":\"dev_admin\"},\"sameAs\":[\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\"],\"url\":\"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/author\/dev_admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report - EnProwess","description":"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.","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":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/","og_locale":"en_US","og_type":"article","og_title":"Improve unit testing in DXP using Arquillian Liferay Extension with Jacoco Report","og_description":"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.","og_url":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/","og_site_name":"EnProwess","article_published_time":"2018-02-12T04:31:32+00:00","article_modified_time":"2022-02-09T13:30:07+00:00","og_image":[{"url":"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png"}],"twitter_card":"summary_large_image","twitter_title":"Improve unit testing in DXP using Arquillian Liferay Extension with Jacoco Report","twitter_description":"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.","twitter_image":"http:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png","twitter_misc":{"Written by":"dev_admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#website","url":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/","name":"EnProwess","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage","inLanguage":"en-US","url":"","contentUrl":""},{"@type":"WebPage","@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage","url":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/","name":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report - EnProwess","isPartOf":{"@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage"},"datePublished":"2018-02-12T04:31:32+00:00","dateModified":"2022-02-09T13:30:07+00:00","author":{"@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#\/schema\/person\/0bf4f9fb6538f60f497377ecceb54f55"},"description":"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.","breadcrumb":{"@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/"},{"@type":"ListItem","position":2,"name":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report"}]},{"@type":"Person","@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#\/schema\/person\/0bf4f9fb6538f60f497377ecceb54f55","name":"dev_admin","image":{"@type":"ImageObject","@id":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/#personlogo","inLanguage":"en-US","url":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-content\/uploads\/2021\/05\/p3.png","contentUrl":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-content\/uploads\/2021\/05\/p3.png","caption":"dev_admin"},"sameAs":["http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com"],"url":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/author\/dev_admin\/"}]}},"_links":{"self":[{"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/posts\/2137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/comments?post=2137"}],"version-history":[{"count":4,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/posts\/2137\/revisions"}],"predecessor-version":[{"id":2418,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/posts\/2137\/revisions\/2418"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/media\/2326"}],"wp:attachment":[{"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/media?parent=2137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/categories?post=2137"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ws-srv-php72.in.webmyne.com\/enprowess.com\/wp-json\/wp\/v2\/tags?post=2137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}