{"id":3709,"date":"2020-05-18T07:00:00","date_gmt":"2020-05-18T06:00:00","guid":{"rendered":"https:\/\/www.diogonunes.com\/blog\/?p=3709"},"modified":"2020-05-15T14:22:43","modified_gmt":"2020-05-15T13:22:43","slug":"cypress-automation-template","status":"publish","type":"post","link":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/","title":{"rendered":"Cypress Sapling (automation template)"},"content":{"rendered":"<figure id=\"attachment_3710\" aria-describedby=\"caption-attachment-3710\" style=\"width: 819px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash.jpg?resize=580%2C725&#038;ssl=1\" alt=\"\" width=\"580\" height=\"725\" class=\"size-large wp-image-3710\" srcset=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?resize=819%2C1024&amp;ssl=1 819w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?resize=320%2C400&amp;ssl=1 320w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?resize=768%2C960&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?resize=1229%2C1536&amp;ssl=1 1229w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?resize=1638%2C2048&amp;ssl=1 1638w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?resize=1200%2C1500&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?w=2048&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?w=1740&amp;ssl=1 1740w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><figcaption id=\"caption-attachment-3710\" class=\"wp-caption-text\">Photo by Tzingtao Chow on Unsplash<\/figcaption><\/figure>\n<h3>No need to start with the seed \u2013 plant the sapling!<\/h3>\n<p><!--more--><\/p>\n<p><em>Get it? Because &#8220;Cypress&#8221; is a tree&#8230; \ud83e\udd13<\/em><\/p>\n<p>On my last project we chose Cypress to automate our E2E tests. During a year and a half we constantly tweaked and improved our test repository. We added <strong>more functionary<\/strong> on top of Cypress (using plugins) and <strong>automated everyday tasks<\/strong> (e.g. dependencies, Docker, static code analysis).<\/p>\n<p>I&#8217;ve extracted the best bits of our test repo into this &#8220;cypress template repository&#8221;, which I decided to call <a href=\"https:\/\/github.com\/dialex\/cypress-sapling\">Cypress Sapling<\/a>.<\/p>\n<p>Thanks to this repository, you no longer have to start from scratch if you want to create your own Cypress testing repository. You will get all this functionality for free:<\/p>\n<ul>\n<li>Code linting, via <a href=\"https:\/\/github.com\/eslint\/eslint\">ESLint<\/a><\/li>\n<li>Code formatting, via <a href=\"https:\/\/github.com\/prettier\/prettier\">Prettier<\/a><\/li>\n<li>Conventional commits, via <a href=\"https:\/\/github.com\/streamich\/git-cz\">git-cz<\/a><\/li>\n<li>HTML test results, via <a href=\"https:\/\/github.com\/adamgruber\/mochawesome\">mochawesome<\/a><\/li>\n<li>JUnit test results (for CI integration), via <a href=\"https:\/\/github.com\/michaelleeallen\/mocha-junit-reporter\">mocha-junit-reporter<\/a><\/li>\n<li>Intuitive test commands, via <a href=\"https:\/\/github.com\/testing-library\/cypress-testing-library\">Testing Library<\/a><\/li>\n<li>Filter tests to run based on tags, via <a href=\"https:\/\/github.com\/bahmutov\/cypress-select-tests\">cypress-select-tests<\/a><\/li>\n<li>Auto retry failed tests, via <a href=\"https:\/\/github.com\/Bkucera\/cypress-plugin-retries\">cypress-plugin-retries<\/a><\/li>\n<li>Wait the test execution until a condition is true, via <a href=\"https:\/\/github.com\/NoriSte\/cypress-wait-until\">cypress-wait-until<\/a><\/li>\n<li>Docker commands to build an image ready to run tests anywhere<\/li>\n<\/ul>\n<p>Even if you already have your own Cypress repository, you can have a look at this template to see what you might be missing and how you could implement it on your repository.<\/p>\n<p><em>P.S: If you want to learn more about the Cypress &#8220;ready-to-run&#8221; Docker image, I wrote a <a href=\"https:\/\/www.diogonunes.com\/blog\/how-to-build-docker-image-cypress-tests\/\">dedicated post<\/a> about it.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No need to start with the seed \u2013 plant the sapling!<\/p>\n","protected":false},"author":1,"featured_media":3710,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[74,20,55,33],"class_list":["post-3709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech","tag-cypress","tag-free-and-open","tag-testing","tag-utilities"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cypress Sapling (automation template) - The Geeky Gecko<\/title>\n<meta name=\"description\" content=\"We chose Cypress to automate our E2E tests. I&#039;ve extracted the best bits of our test repository into this cypress template. No need to start from scratch.\" \/>\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.diogonunes.com\/blog\/cypress-automation-template\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cypress Sapling (automation template) - The Geeky Gecko\" \/>\n<meta property=\"og:description\" content=\"We chose Cypress to automate our E2E tests. I&#039;ve extracted the best bits of our test repository into this cypress template. No need to start from scratch.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/\" \/>\n<meta property=\"og:site_name\" content=\"The Geeky Gecko\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-18T06:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"2560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Diogo Nunes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:site\" content=\"@dialexnunes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diogo Nunes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/\"},\"author\":{\"name\":\"Diogo Nunes\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"headline\":\"Cypress Sapling (automation template)\",\"datePublished\":\"2020-05-18T06:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/\"},\"wordCount\":256,\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1\",\"keywords\":[\"cypress\",\"free and open\",\"testing\",\"utilities\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/\",\"name\":\"Cypress Sapling (automation template) - The Geeky Gecko\",\"isPartOf\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1\",\"datePublished\":\"2020-05-18T06:00:00+00:00\",\"description\":\"We chose Cypress to automate our E2E tests. I've extracted the best bits of our test repository into this cypress template. No need to start from scratch.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1\",\"width\":2048,\"height\":2560,\"caption\":\"Photo by Tzingtao Chow on Unsplash\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.diogonunes.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cypress Sapling (automation template)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#website\",\"url\":\"https:\/\/www.diogonunes.com\/blog\/\",\"name\":\"The Geeky Gecko\",\"description\":\"The Geeky Gecko\",\"publisher\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c\",\"name\":\"Diogo Nunes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1\",\"width\":799,\"height\":799,\"caption\":\"Diogo Nunes\"},\"logo\":{\"@id\":\"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.diogonunes.com\",\"https:\/\/x.com\/dialexnunes\"],\"url\":\"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cypress Sapling (automation template) - The Geeky Gecko","description":"We chose Cypress to automate our E2E tests. I've extracted the best bits of our test repository into this cypress template. No need to start from scratch.","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.diogonunes.com\/blog\/cypress-automation-template\/","og_locale":"en_US","og_type":"article","og_title":"Cypress Sapling (automation template) - The Geeky Gecko","og_description":"We chose Cypress to automate our E2E tests. I've extracted the best bits of our test repository into this cypress template. No need to start from scratch.","og_url":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/","og_site_name":"The Geeky Gecko","article_published_time":"2020-05-18T06:00:00+00:00","og_image":[{"width":2048,"height":2560,"url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1","type":"image\/jpeg"}],"author":"Diogo Nunes","twitter_card":"summary_large_image","twitter_creator":"@dialexnunes","twitter_site":"@dialexnunes","twitter_misc":{"Written by":"Diogo Nunes","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#article","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/"},"author":{"name":"Diogo Nunes","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"headline":"Cypress Sapling (automation template)","datePublished":"2020-05-18T06:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/"},"wordCount":256,"publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1","keywords":["cypress","free and open","testing","utilities"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/","url":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/","name":"Cypress Sapling (automation template) - The Geeky Gecko","isPartOf":{"@id":"https:\/\/www.diogonunes.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage"},"image":{"@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1","datePublished":"2020-05-18T06:00:00+00:00","description":"We chose Cypress to automate our E2E tests. I've extracted the best bits of our test repository into this cypress template. No need to start from scratch.","breadcrumb":{"@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#primaryimage","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1","width":2048,"height":2560,"caption":"Photo by Tzingtao Chow on Unsplash"},{"@type":"BreadcrumbList","@id":"https:\/\/www.diogonunes.com\/blog\/cypress-automation-template\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.diogonunes.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cypress Sapling (automation template)"}]},{"@type":"WebSite","@id":"https:\/\/www.diogonunes.com\/blog\/#website","url":"https:\/\/www.diogonunes.com\/blog\/","name":"The Geeky Gecko","description":"The Geeky Gecko","publisher":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.diogonunes.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/a6fa79b293f22912664654fcfbd2da0c","name":"Diogo Nunes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2026\/04\/Geeky-Gecko-2026-v2.png?fit=799%2C799&ssl=1","width":799,"height":799,"caption":"Diogo Nunes"},"logo":{"@id":"https:\/\/www.diogonunes.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.diogonunes.com","https:\/\/x.com\/dialexnunes"],"url":"https:\/\/www.diogonunes.com\/blog\/author\/diogo-nunes\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/tzingtao-chow-J8oxnYHBpWM-unsplash-scaled.jpg?fit=2048%2C2560&ssl=1","jetpack-related-posts":[{"id":3702,"url":"https:\/\/www.diogonunes.com\/blog\/how-to-build-docker-image-cypress-tests\/","url_meta":{"origin":3709,"position":0},"title":"How to build a Docker image ready to run Cypress tests","author":"Diogo Nunes","date":"11 May, 2020","format":false,"excerpt":"My team decided to build a Docker image that contained Cypress, dependencies and all our end-to-end (E2E) tests. That way, anyone could simply pull the image and with a single command it was ready to run tests. Also, the developers and the CI pipeline we both using the same image,\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/cypress-on-docker.png?fit=1200%2C488&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/cypress-on-docker.png?fit=1200%2C488&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/cypress-on-docker.png?fit=1200%2C488&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/cypress-on-docker.png?fit=1200%2C488&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/cypress-on-docker.png?fit=1200%2C488&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3978,"url":"https:\/\/www.diogonunes.com\/blog\/framework-review-cypress\/","url_meta":{"origin":3709,"position":1},"title":"Framework review: Cypress","author":"Diogo Nunes","date":"4 January, 2021","format":false,"excerpt":"Fast and reliable testing for anything that runs in a browser. It uses Javascript to make setting up, writing, running and debugging tests easy \u2014 for QAs and developers. \u2014 Official website Code Example of automation at GitHub. Use cases \ud83e\udd47 Automate end-to-end (E2E) tests using the UI or the\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/09\/herbert-goetsch-vImJ5GYMMqQ-unsplash-1.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3942,"url":"https:\/\/www.diogonunes.com\/blog\/cypress-tips-tricks\/","url_meta":{"origin":3709,"position":2},"title":"Tips &#038; Tricks for Cypress","author":"Diogo Nunes","date":"18 January, 2021","format":false,"excerpt":"\ud83c\udfc6 This post was featured in Software Testing Weekly, issue 55 This is a collection of simple and recurring scenarios when writing Cypress tests. For more complex recipes, check the official doc. Setup Abort cypress after first failed test Read a test file from fixtures Assertions Assert the text of\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/hunter-haley-s8OO2-t-HmQ-unsplash-scaled.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/hunter-haley-s8OO2-t-HmQ-unsplash-scaled.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/hunter-haley-s8OO2-t-HmQ-unsplash-scaled.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/hunter-haley-s8OO2-t-HmQ-unsplash-scaled.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/08\/hunter-haley-s8OO2-t-HmQ-unsplash-scaled.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3717,"url":"https:\/\/www.diogonunes.com\/blog\/cypress-pageobjects-inheritance-js\/","url_meta":{"origin":3709,"position":3},"title":"Cypress: PageObjects using inheritance","author":"Diogo Nunes","date":"1 June, 2020","format":false,"excerpt":"Scenario: Your web site is deployed on several countries. The behaviour of the page you want to test (e.g. sign up) is mostly the same across countries, however some business rules change per country. You are using the PageObjects pattern to encapsulate the details of each page. You want to\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/68747470733a2f2f65726c616e67656e776c6164696d69722e66696c65732e776f726470726573732e636f6d2f323031352f30352f6d6174726a6f7363686b612d332e6a7067.jpeg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/68747470733a2f2f65726c616e67656e776c6164696d69722e66696c65732e776f726470726573732e636f6d2f323031352f30352f6d6174726a6f7363686b612d332e6a7067.jpeg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/68747470733a2f2f65726c616e67656e776c6164696d69722e66696c65732e776f726470726573732e636f6d2f323031352f30352f6d6174726a6f7363686b612d332e6a7067.jpeg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/68747470733a2f2f65726c616e67656e776c6164696d69722e66696c65732e776f726470726573732e636f6d2f323031352f30352f6d6174726a6f7363686b612d332e6a7067.jpeg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/68747470733a2f2f65726c616e67656e776c6164696d69722e66696c65732e776f726470726573732e636f6d2f323031352f30352f6d6174726a6f7363686b612d332e6a7067.jpeg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3685,"url":"https:\/\/www.diogonunes.com\/blog\/asserting-text-using-cypress\/","url_meta":{"origin":3709,"position":4},"title":"Asserting text using Cypress","author":"Diogo Nunes","date":"6 July, 2020","format":false,"excerpt":"If you're using Cypress, eventually you will have to assert some text. However, they provide at least three methods to do that, and from the documentation is not clear the difference between: .should(\"have.text\", \"expected text goes here\") .should(\"include.text\", \"expected text goes here\") .should(\"contain.text\", \"expected text goes here\") Do they all\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"Photo by Sunyu on Unsplash","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/sunyu-jtjS4F8Q7sY-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/sunyu-jtjS4F8Q7sY-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/sunyu-jtjS4F8Q7sY-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/sunyu-jtjS4F8Q7sY-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/04\/sunyu-jtjS4F8Q7sY-unsplash-scaled.jpg?fit=1200%2C798&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3590,"url":"https:\/\/www.diogonunes.com\/blog\/cypress-pageobjects-vs-appactions\/","url_meta":{"origin":3709,"position":5},"title":"Cypress: PageObjects vs AppActions","author":"Diogo Nunes","date":"2 March, 2020","format":false,"excerpt":"I use Selenium to write most of my automated checks, and the PageObjects pattern is a must. My current team is using Cypress and, to my surprise, this test framework recommends AppActions instead of PageObjects. So I decided to benchmark both patterns using the following criteria: Can it abstract page\u2026","rel":"","context":"In &quot;Technology&quot;","block_context":{"text":"Technology","link":"https:\/\/www.diogonunes.com\/blog\/category\/tech\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/02\/jason-dent-JVD3XPqjLaQ-unsplash.jpg?fit=1141%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/02\/jason-dent-JVD3XPqjLaQ-unsplash.jpg?fit=1141%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/02\/jason-dent-JVD3XPqjLaQ-unsplash.jpg?fit=1141%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/02\/jason-dent-JVD3XPqjLaQ-unsplash.jpg?fit=1141%2C1200&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.diogonunes.com\/blog\/wp-content\/uploads\/2020\/02\/jason-dent-JVD3XPqjLaQ-unsplash.jpg?fit=1141%2C1200&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/3709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/comments?post=3709"}],"version-history":[{"count":4,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/3709\/revisions"}],"predecessor-version":[{"id":3716,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/posts\/3709\/revisions\/3716"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media\/3710"}],"wp:attachment":[{"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/media?parent=3709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/categories?post=3709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diogonunes.com\/blog\/wp-json\/wp\/v2\/tags?post=3709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}