Skip to main content

Introducing dynamic descriptions

ยท 8 min read

๐Ÿ“ฃ Serenity/JS Tasks, Interactions and Questions now support dynamic descriptions ๐ŸŽ‰

With the new release of Serenity/JS 3.24, descriptions of Tasks, Interactions, and Questions, including assertions and synchronisation statements, can be determined dynamically at runtime and incorporate the actual values of static and dynamic parameters you passed in.

The new dynamic descriptions feature is particularly useful when designing custom Serenity/JS tasks that accept notes or other dynamic data structures like questions, question adapters, or answerables.

Long story short: to use dynamic descriptions, upgrade to Serenity/JS 3.24 and replace d with the in your custom Task and Interaction definitions:

- import { Task, d } from '@serenity-js/core';
+ import { Task, the } from '@serenity-js/core';

export const recordItem = (name: Answerable<string>): Task =>
- Task.where(d`#actor records an item called ${ name }`,
+ Task.where(the`#actor records an item called ${ name }`,
Enter.theValue(name).into(newTodoInput()),
Press.the(Key.Enter).in(newTodoInput()),
Wait.until(itemNames(), contain(name)),
)

This tiny change to your code will enable your Serenity reports to show the actual values of your task and interaction parameters.

Support for dynamic descriptions

Want to learn more? Read on!

Support for @tags

ยท 2 min read

Support for tagging

๐Ÿ“ฃ Serenity/JS now supports tagging across all the test runners ๐ŸŽ‰

With the new release of Serenity/JS 3.21, tagging test scenarios just got easier. Now, you can use @tags across all the supported test runners, so:

Why should you tag your scenarios?โ€‹

Tagging test scenarios helps you organise and filter your test suites. You can categorise tests based on functionality, priority, or type, making it easier to manage and focus your testing efforts.

Plus, tagging allows for selective test execution. You can run a subset of tests by specifying relevant tags, which is handy for regression testing or when focusing on specific parts of your application.

Tagging also improves test reporting and integrates well with test management tools. It gives you insights into test coverage and helps streamline test planning and tracking.

And if you're using Playwright Test, Serenity/JS supports the latest Playwright 1.42 tag API, enhancing your tagging capabilities even further!

Contributor spotlightโ€‹

A huge thank you to our Serenity/JS Contributors for their work on this release:

  • Otoniel Isidoro, who enabled tagging support for Playwright Test
  • Mateusz Kruk, who greatly improved Playwright Test global error handling

Enjoy Serenity!

Support for Serenity BDD 4

ยท One min read

Serenity/JS 3.15.0 introduces support for Serenity BDD 4 and aggregated test reports for Playwright Test, WebdriverIO, Mocha, Jasmine and Cucumber! ๐Ÿฅณ

We've also updated the Serenity/JS Handbook to help you get the most out of the new Serenity/JS and Serenity BDD reporting features - check out:

Important changesโ€‹

If you're still using the Serenity/JS 2-style syntax for registering the SerenityBDDReporter, you'll need to update your configuration file to use the Serenity/JS 3 convention:

- import { ArtifactArchiver } from '@serenity-js/core';
- import { SerenityBDDReporter } from '@serenity-js/serenity-bdd';

// ...
crew: [
- new SerenityBDDReporter(),
- ArtifactArchiver.storingArtifactsAt('./target/site/serenity'),
+ '@serenity-js/serenity-bdd',
+ [ '@serenity-js/core:ArtifactArchiver', {
+ outputDirectory: 'target/site/serenity'
+ } ],
]
// ...

Learn more about Configuring Serenity BDD Reporter.

Support for Playwright Test UI Mode!

ยท One min read

Playwright Logo

Serenity/JS 3.3.0 introduces support for Playwright Test UI Mode, improves support for Playwright trace viewer, and leverages Playwright auto-waiting locators! ๐Ÿฅณ

Check out our new tutorial where in less than 5 minutes, you'll learn how to integrate Serenity/JS with your Playwright test suite, enable Serenity BDD reports, start using the Screenplay Pattern, and get started with Playwright Test UI Mode!

Learn about Using Serenity/JS with Playwright Test!

Support for WebdriverIO 8

ยท One min read

WebdriverIO Roboter

Serenity/JS started to support WebdriverIO in version 2.30.0.

In version 3.0.0, Serenity/JS brought you @serenity-js/web - a portable abstraction layer that lets you run the exact same web scenario with WebdriverIO, Playwright, and even Protractor!

Now, we're taking things further with Serenity/JS 3.2.0 introducing support for the latest and greatest WebdriverIO 8! ๐Ÿฅณ

Check out our new tutorial where in less than 5 minutes, you'll learn how to integrate Serenity/JS with your WebdriverIO test suite, enable Serenity BDD reports, and start using the Screenplay Pattern!

Learn about Using Serenity/JS with WebdriverIO!

Test Automation Summit, Berlin 2022

ยท 5 min read

Test Automation Summit, Berlin 2022

When Titus Fortner (@titusfortner), the maintainer of Watir and a contributor to Selenium, messaged me on Twitter two months ago, I knew something interesting was coming.

Titus and I never met in person. In fact, I have never met most of the other open-source maintainers I've worked with over the last ten years since I became an open-source maintainer myself and the last six years I spent working on Serenity/JS.

This is not that surprising, to be fair. After all, have you ever met any of the people maintaining the open-source libraries and frameworks that your work depends on?

Well, in my case, this was about to change.