Skip to content

Releases: serenity-bdd/serenity-core

v4.0.1

10 Jan 10:32
Compare
Choose a tag to compare

Serenity 4 Release Notes

Serenity 4.0.1 is a major upgrade. The most significant change is updating the library to support Java 11, in line with other popular testing libraries such as Selenium and Mockito. However, the migration to Java 11 requires changes in the module structure, which requires some breaking changes to the package structure.

These release notes will explain how to update your project to work with Serenity BDD 4.x.

The biggest change is the main Serenity annotations, such as @Step, which are now in the net.serenitybdd.annotations package, rather than the net.thucydides.core.annotations package as was previously the case.

If you are using Serenity internal classes, some of these may have moved as well.

The following table indicates the main changes:

Package changes

Module Old packages New Packages
serenity-screenplay-webdriver net.serenity.screenplay.* net.serenity.screenplay.webdriver.*
net.serenitybdd.screenplay.webtest.actions.* net.serenitybdd.screenplay.webdriver.actions.*
serenity-model net.serenitybdd.core.* net.serenitybdd.model.*
net.thucydides.core.annotations.* net.serenitybdd.annotations.*
Other net.thucydides.core.* net.thucydides.model.*

For example:

  • Replace any annotations previously in net.thucydides.core.annotations (e.g. @step) in net.serenitybdd.annotations
  • Replace net.thucydides.core.util.EnvironmentVariables with net.thucydides.model.util.EnvironmentVariables

This release also includes support for Selenium 4.11.0, a number of bug fixes, and improved support of reporting step durations for parallel tests.

Guice is no longer used

Serenity stopped using Guice in version 3.9.8. This has no impact on most test scripts, but if you are using internal classes such as net.thucydides.core.guice.Injectors classes to retrieve objects such as EnvironmentVariables, this will no longer work. In Serenity 4.0.0 or higher, to retrieve the current environment variables, use the net.serenitybdd.core.di.SerenityInfrastructure class as shown here:

EnvironmentVariables environmentVariables = SerenityInfrastructure.getEnvironmentVariables();

Report Generation Changes

In Serenity 4.0.x, test execution generates JSON test output files, but not HTML files. To generate the full HTML reports, invoke the aggregate task, e.g. mvn aggregate or gradle aggregate.

Release v3.6.7

01 Feb 10:34
Compare
Choose a tag to compare

parallel test execution in both Cucumber and JUnit 5

3.2.0

11 Feb 14:09
Compare
Choose a tag to compare

Serenity 3.2.0 contains a number of bug fixes and enhancements, including:

  • Improved performance in report generation
  • Updated the Page Elements API (https://serenity-bdd.github.io/documentation/docs/guide/page_elements)
  • Improved requirements reporting to include more comprehensive requirements tables and better support for deep requirements hierarchies
  • Collections of elements retrieved with findAll() methods and then processed (e.g. findAll(".myelements").texts()) will now automatically requery if a stale element exception occurs. You can disable this behaviour by setting the webdriver.retry.on.stable.element.exception property to false.
  • Improved Playwright/Screenplay integration
  • Support for @singlebrowser annotation in Cucumber scenarios
  • Bug fixes include:

3.1.20

30 Jan 20:52
Compare
Choose a tag to compare

Minor update including some bug fixes, performance improvements, enhanced Playwright support, and support for Selenium 4.1.2

3.1.15

23 Dec 19:00
Compare
Choose a tag to compare

This release includes support for Selenium 4.1.1 and Cucumber 7, as well as various bug fixes.
We have also introduced beta support for Playwright using Screenplay.

3.1.0

26 Nov 13:17
Compare
Choose a tag to compare

Serenity 3.1.0 is a major new release of Serenity BDD. Some of the more significant changes include:

  • Integration with Selenium 4 and Appium 8
  • Improved reporting, including reporting on test duration
  • New responsive report layout
  • Use the serenity.report.accesibility property to render reports using patterns instead of plain colors
  • Filtering Cucumber scenarios (e.g. using the "cucumber.filter.tags" option will now exclude filtered features from appearing in the reports, allowing more focused reporting)
  • Added the WebDriverManagerEnhancer interface, which allows you to write custom code to integrate with the more advanced WebDriverManager features from within Serenity.
  • Chrome is now the default browser
  • Added the SingleBrowser annotation and tag which can be used in JUnit or Cucumber to run all the scenarios in a test suite, feature or scenario outline in a single browser instance
  • Added the InTheBrowser task which makes it easier to perform direct WebDriver operations from within a Screenplay task.

For more details about the new features read this article.

v2.6.0 support for JUnit 5

31 Aug 20:33
Compare
Choose a tag to compare

Serenity 2.6.0 is a major update that adds beta support for JUnit5.

  • In comparison with the JUnit4 integration, for JUnit5 tests no additional annotation is needed.
    Short overview of supported features/annotations
  • Tagging : @Tag("type:name") - mvn clean verify -Dtags="type:name"
  • Data Driven tests: @ParameterizedTest,@ValueSource,@EnumSource,@CsvFileSource
  • Nested tests: @Nested
  • @DisplayName for methods

The following plugins must be upgraded to the version 3.0.0-M5

  • maven-surefire-plugin
  • maven-failsafe-plugin

A big callout to @cliviu who spearheaded this module!

v2.3.10

03 Jan 22:37
Compare
Choose a tag to compare

Release of 2.3.10

  • Updated test cases
  • Updated test cases
  • Support for Gherkin Rules in reports (#2346)
  • add new Switch Tasks (#2334)
  • fix: instance of driver in steps should point to separate object for every test, executed in parallel (#2333)
  • Added By selector for Shadow Dom elements (#2341)
  • wording and formatting like the other reports
  • Minor refactoring

v2.3.9

08 Dec 11:08
82ed063
Compare
Choose a tag to compare
  • correct the check for value attribute (#2329)
  • bug FIX a bug that causes current context to be override when calling getEnvironmentVariables method in TestOutcome (#2326)
  • feat: CheckCheckbox interaction (#2325)
  • Bump junit from 4.8.1 to 4.13.1 in /serenity-demo (#2266)
  • Bump junit from 4.12 to 4.13.1 in /serenity-smoketests (#2267)
  • Bump junit from 4.12 to 4.13.1 in /serenity-appium-screenplay-poc (#2268)
  • Bump junit from 4.12 to 4.13.1 in /serenity-appium (#2269)
  • Bump junit from 4.12 to 4.13.1 in /serenity-mobile-screenplay-example (#2272)
  • Consider annotations on non-public test methods (TestAnnotations.getMethodCalled) (#2306)
  • Merge pull request #2307 from fabianlinz/unused_manual_code
  • Merge pull request #2304 from SiKing/feature/expand_getTextValue
  • Merge pull request #2323 from tlinkowski/response-decorated-as
  • Add missing as() overrides to ResponseDecorated
  • feat: smartbear crossbrowsertesting support (#2316)
  • Add support to hide rest queries using screenplay (#2315)
  • feat: report navigator templates v0.2.9
  • Remove unused code for @Manual handling
  • textarea also has a 'value'
  • feat: report navigator templates v0.2.8
  • Ignore stacktrace element for inner interfaces and inner or anonymous classes without a superclass (#2229) (#2295)
  • feat: report navigator templates v0.2.7
  • feat: report navigator templates v0.2.6
  • fix: no report "navigator" found in classpath

v2.3.8

12 Nov 21:03
Compare
Choose a tag to compare

Release of 2.3.8

  • Fixed a defect related to Screenplay Facts, where the teardown() method was called more than once in some circumstances