In BDD you write your system requirements in structural but natural language. Writing End-to-End tests in a natural language enlarges the audience that can read and use them. This means your Product Management and Customer Success teams can read and comment on your tests without knowing any programming language.
Gherkin is a BDD language that uses some keywords to describe the scenarios. …
Playwright is Microsoft’s new alternative to browser-based test automation. We have recently switched from Webdriverio / Selenium to Playwright. Here are the top reasons:
I just love PW selectors! Playwright selectors are built as strings comprised of sections where each section is a selector by itself. A selector looks like this:
css=#menu >> css=div.menu-item>> text="Books"
This will search the top for the menu element, a menu item inside that contains the text “Books”.
Moreover, if you are using Web Components on your website, you can decide if the selectors will pierce the shadow DOM or not. Piercing the Shadow Dom…
Monorepos used to be thought of as a solution suitable only to large enterprises, but recently, it seems, the need for them has become apparent to teams of all sizes.
This growth in demand has been met by the creation of numerous tools that offer simpler implementations for this type of code management architecture.
Before we review the most prominent tools, let’s first set out a clear definition for monorepos.
The Wikipedia definition refers to a monorepo as a
Software development strategy where code for many projects is stored in the same repository.
I aim for a more precise definition…
Bit.dev now provides integration with GitHub.
This integration lets you get automated PRs to update projects with the latest component versions. And, it lets you track and control exactly which components are used or updated in which project- by which team.
Component consumers can get automated PRs for new versions of components, and effortlessly keep their components up to date.
Component maintainers can gain visibility into their component’s usage and adoption, to learn which PRs were merged and who’s lagging behind.
Here is a scenario which may look very familiar:
SOSA company has two code repositories: Shoppy is an online shopping e-commerce application, and Stocky — an inventory management application. Jane is a developer in the Shoppy team and her colleague, John, is working in the Stocky team.
Recently, Jane has developed a great product-list component for displaying products in Shoppy. John has seen Jane’s component and would like to use it in Stocky. He realized that this component would be great to be used in Stocky to show the existing products and updating their current Stock. …
This is an update to my previous article on Testing StencilJS adopted for Stencil One (stencil 1.0) unit testing. Scroll to the end of this article to read a short opinionated history of Stencil unit testing evolution.
In this article, as in the previous one, I will assume you are familiar with unit testing basics as well as with Jest, and are looking to implement them with Stencil. Buckle on!
Although Stencil is provided a command line to run unit testing, I prefer to have a standard jest config. …
Welcome to the rescue zone. If you have come so far, it is probably because you found yourself cursing Apple for their iOS signing process and the confusion around it. Stay calm, we have all been there and survived to tell.
This is not another how-to article. Plenty of those exist around. Here, I will try and draw a higher level picture of how the iOS signing work. Getting a mental model of the process is useful when things go less smoothly and you need to trouble shoot your errors.
This article is written and published on March 2019. XCode…
Update: The newer version of this article is here. Changes made in Stencil make this article mostly irrelevant.
Note: Tests were adopted to changes performed in Stencil 0.7.19
Testing stenciljs is still in its infancy, and I found myself collecting some best practices and code examples on testing the component. The first batch is here:
Software design is the art of trade offs. You make some decisions that will gain some value but will likely preclude some other benefits. A famous example is the Project Management Triangle, balancing between cost, time and scope.
A similar, but more specific triangle can be applied on E2E testing (although the above is still true for any project). I would claim that when you design your tests, you may balance between 3 factors:
The coverage and the…