Skip to content

v1.0.0

Choose a tag to compare

@jan-molak jan-molak released this 10 Feb 02:00

1.0.0 (2017-02-10)

Bug Fixes

  • core:
    • JSONReporter superseded by SerenityBDDReporter (0b93ff0d)
    • JSONObject interface definition should not reference the static JSON class (ed4fabb6)
  • deps: Pegged Protractor to 5.0.x until backwards compatibility issues intrduced in 5.1 (8c799972)
  • interactions: See is no longer reported by default, as that polluted the report and triggere (3b7efb81)
  • serenity-cucumber: The tags parameter in cucumberOpts is now correctly typed as a list of strin (abdeddad)
  • serenity-mocha: Pending scenarios with no steps are correctly marked as pending instead of passi (a593a84d)

Features

  • integration: Stand-ins enable taking screenshots when there are no Actors on the Stage. (786b3373)
  • screenplay: The actor can now TakeNotes to assert on their contents later. (ab368276, closes #24)
  • serenity: SerenityProtractorFramework takes care of executing cucumber and mocha tests. (6cf0197a)
  • serenity-mocha:
    • A compiler can be registered as a configuration parameter (02a0c6eb)
    • Tests that timed out or failed with an exception are recognised as "Compromised" (532fb86e)
  • serenity-protractor:
    • Serenity can auto-detect the appropriate test dialect (c50a4bf7)
    • SerenityProtractorFramework advises how to install a missing test runner. (b6caf893)

Breaking Changes

  • JSONReporter is now superseded by a cleaner and more focused implementation -

SerenityBDDReporter, which better handles gathering results from tests executed in parallel.

(0b93ff0d)

  • SerenityProtractorPlugin is now removed in favour of the much more flexible SerenityProtractorFramework.

You can use the SerenityProtractorFramework instead of the mocha or the protractor-cucumber-framework modules
as it provides capabilities equivalent to those modules, and also enables an easy integration with Serenity/JS
as well as synchronisation with the WebDriver ControlFlow so that the test reports will show accurate timing.

To enable the framework, add the following configuration to your protractor.conf.js file:

exports.config = {
    framework: 'custom',

    frameworkPath: require.resolve('serenity-js'),
    serenity: {
        dialect: 'cucumber'     // or 'mocha'
    },

    specs: [ 'features/**/*.feature' ],

    cucumberOpts: {             // or 'mochaOpts'
    },

Both cucumberOpts and mochaOpts don't need to change as SerenityProtractorFramework can act as a drop-in replacement.

Please see the todomvc-protractor-cucumber and todomvc-protractor-mocha example project for details.

BREAKING CHANGE: The serenity object should be used instead of the Serenity singleton to initialise
the stage and the actors.

Instead of:

import { Serenity } from 'serenity-js';

const stage = Serenity.callToStageFor(cast);

use:

import { serenity } from 'serenity-js';

const stage = serenity.callToStageFor(cast);

Tutorials and more documentation to follow shortly!

(6cf0197a)