{"id":2137,"date":"2018-02-12T04:31:32","date_gmt":"2018-02-12T04:31:32","guid":{"rendered":"https:\/\/www.enprowess.com\/blogs\/?p=2137"},"modified":"2022-04-27T15:19:48","modified_gmt":"2022-04-27T09:49:48","slug":"improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report","status":"publish","type":"post","link":"https:\/\/www.enprowess.com\/blogs\/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\" class=\"aligncenter size-full wp-image-2144\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/1.png\" alt=\"Lets start with creating Liferay Portlet Skeleton.\" 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\" class=\"aligncenter size-full wp-image-2145\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/2.png\" alt=\"Define OSGi service interface and its Implementation class inside a package created for service classes.\" 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\" class=\"aligncenter size-full wp-image-2146\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/3.1.png\" alt=\"Create a Test class as follow,\" 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\" class=\"aligncenter size-full wp-image-2148\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/4.png\" alt=\"ShrinkWrap API creates Test Archive.\" width=\"553\" height=\"102\" \/><\/p>\n<p>Set dependencies as below inside plugin\u2019s build.gradle file.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2149\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/5.png\" alt=\"Set dependencies as below inside plugin\u2019s build.gradle file.\" 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\" class=\"aligncenter size-full wp-image-2150\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/6.png\" alt=\"Create arquillian.xml\" 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\" class=\"aligncenter size-full wp-image-2151\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/7.png\" alt=\"Following image shows runtime options in setenv.bat(windows machine) that enables JMX on port 8099 in Apache Tomcat\" 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\" class=\"aligncenter size-full wp-image-2152\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/8.png\" alt=\"Arquillian uses JMX API Implementation of Apache Aries JMX\" 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\" class=\"aligncenter size-full wp-image-2153\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/9.png\" alt=\" Install them from Apache Felix gogo shell or by setting gradle tasks in build.gradle\" 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\" class=\"aligncenter size-full wp-image-2154\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/10.png\" alt=\"Jacoco requires attaching Jacoco agent to JVM\" 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\" class=\"aligncenter size-full wp-image-2155\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/11.png\" alt=\"configuring setUptestableTocat \" 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\" class=\"aligncenter size-full wp-image-2156\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/12.png\" alt=\"instructions inside jacoco build.gradle\" 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\" class=\"aligncenter size-full wp-image-2157\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/13.png\" alt=\"Task will look as follow,\" 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\" class=\"aligncenter size-full wp-image-2158\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/14.png\" alt=\"Configure Liferay server on which Arquillian need to execute test\" width=\"553\" height=\"119\" \/><\/p>\n<p>You can set tomcat startup time as below.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2159\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/15.png\" alt=\"You can set tomcat startup time\" width=\"553\" height=\"50\" \/><\/p>\n<p>Open a terminal to project root path and execute command as shown under:<\/p>\n<p>You can set tomcat startup time<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2160\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/16.png\" alt=\"You can set tomcat startup time\" 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\" class=\"aligncenter size-full wp-image-2161\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/17.png\" alt=\"successful execution\" 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\" class=\"aligncenter size-full wp-image-2163\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/18.png\" alt=\"Arquillian Test Result\" width=\"552\" height=\"165\" \/><\/p>\n<p><strong><u>Jacco Coverage Report:<\/u><\/strong><\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-2229\" src=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/19.png\" alt=\"Jacco Coverage Report\" 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=\"https:\/\/www.enprowess.com\/blogs\/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":2193,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,46],"tags":[83,58,18,19,84],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Improve unit testing in DXP using Arquillian Extension with Jacoco Report - EnProwess Blog<\/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=\"https:\/\/www.enprowess.com\/blogs\/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=\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\" \/>\n<meta property=\"og:site_name\" content=\"EnProwess Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-12T04:31:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-27T09:49:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\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=\"https:\/\/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=\"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\":\"Organization\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\",\"name\":\"EnProwess\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg\",\"contentUrl\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg\",\"width\":1057,\"height\":697,\"caption\":\"EnProwess\"},\"image\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#website\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/\",\"name\":\"EnProwess Blog\",\"description\":\"Your Enterprise solution partner\",\"publisher\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.enprowess.com\/blogs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage\",\"url\":\"https:\/\/www.enprowess.com\/blogs\/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 Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage\"},\"datePublished\":\"2018-02-12T04:31:32+00:00\",\"dateModified\":\"2022-04-27T09:49:48+00:00\",\"description\":\"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/www.enprowess.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Liferay\",\"item\":\"https:\/\/www.enprowess.com\/blogs\/category\/liferay\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Improve unit testing in DXP using Arquillian Extension with Jacoco Report\"}]},{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11\"},\"headline\":\"Improve unit testing in DXP using Arquillian Extension with Jacoco Report\",\"datePublished\":\"2018-02-12T04:31:32+00:00\",\"dateModified\":\"2022-04-27T09:49:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage\"},\"wordCount\":688,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png\",\"keywords\":[\"Arquillian\",\"integration\",\"Liferay 7\",\"Liferay DXP\",\"ShrinkWrap\"],\"articleSection\":[\"Liferay\",\"Liferay DXP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.enprowess.com\/blogs\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/www.enprowess.com\/blogs\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report - EnProwess Blog","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":"https:\/\/www.enprowess.com\/blogs\/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":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/","og_site_name":"EnProwess Blog","article_published_time":"2018-02-12T04:31:32+00:00","article_modified_time":"2022-04-27T09:49:48+00:00","og_image":[{"url":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png"}],"twitter_card":"summary","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":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.enprowess.com\/blogs\/#organization","name":"EnProwess","url":"https:\/\/www.enprowess.com\/blogs\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https:\/\/www.enprowess.com\/blogs\/#logo","inLanguage":"en-US","url":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg","contentUrl":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2021\/07\/enprowess_logo.jpg","width":1057,"height":697,"caption":"EnProwess"},"image":{"@id":"https:\/\/www.enprowess.com\/blogs\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.enprowess.com\/blogs\/#website","url":"https:\/\/www.enprowess.com\/blogs\/","name":"EnProwess Blog","description":"Your Enterprise solution partner","publisher":{"@id":"https:\/\/www.enprowess.com\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.enprowess.com\/blogs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage","inLanguage":"en-US","url":"","contentUrl":""},{"@type":"WebPage","@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage","url":"https:\/\/www.enprowess.com\/blogs\/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 Blog","isPartOf":{"@id":"https:\/\/www.enprowess.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage"},"datePublished":"2018-02-12T04:31:32+00:00","dateModified":"2022-04-27T09:49:48+00:00","description":"This post talks about utilising Arquillian Liferay extension and JACOCO report to improve code quality for Liferay DXP\/7.","breadcrumb":{"@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.enprowess.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"Liferay","item":"https:\/\/www.enprowess.com\/blogs\/category\/liferay\/"},{"@type":"ListItem","position":3,"name":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report"}]},{"@type":"TechArticle","@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#article","isPartOf":{"@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage"},"author":{"@id":"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11"},"headline":"Improve unit testing in DXP using Arquillian Extension with Jacoco Report","datePublished":"2018-02-12T04:31:32+00:00","dateModified":"2022-04-27T09:49:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#webpage"},"wordCount":688,"commentCount":0,"publisher":{"@id":"https:\/\/www.enprowess.com\/blogs\/#organization"},"image":{"@id":"https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#primaryimage"},"thumbnailUrl":"https:\/\/www.enprowess.com\/blogs\/wp-content\/uploads\/2018\/02\/liferay-JACOCO-Arquillian.png","keywords":["Arquillian","integration","Liferay 7","Liferay DXP","ShrinkWrap"],"articleSection":["Liferay","Liferay DXP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.enprowess.com\/blogs\/improve-unit-testing-in-dxp-using-arquillian-liferay-extension-with-jacoco-report\/#respond"]}]},{"@type":"Person","@id":"https:\/\/www.enprowess.com\/blogs\/#\/schema\/person\/cb84840e7dba202419065ea1c9fe7f11","name":"admin","image":{"@type":"ImageObject","@id":"https:\/\/www.enprowess.com\/blogs\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b43445b202a083f6e4a2f2e7d6f43d62?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.enprowess.com\/blogs\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/2137"}],"collection":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/comments?post=2137"}],"version-history":[{"count":13,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/2137\/revisions"}],"predecessor-version":[{"id":3197,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/posts\/2137\/revisions\/3197"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/media\/2193"}],"wp:attachment":[{"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/media?parent=2137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/categories?post=2137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enprowess.com\/blogs\/wp-json\/wp\/v2\/tags?post=2137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}