Releases: serenity-bdd/serenity-core
v4.0.1
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) innet.serenitybdd.annotations
- Replace
net.thucydides.core.util.EnvironmentVariables
withnet.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
parallel test execution in both Cucumber and JUnit 5
3.2.0
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 thewebdriver.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
3.1.15
3.1.0
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
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
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
- 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
Release of 2.3.8
- Fixed a defect related to Screenplay Facts, where the teardown() method was called more than once in some circumstances