Skip to content

Latest commit

 

History

History
1853 lines (1438 loc) · 212 KB

CHANGELOG.md

File metadata and controls

1853 lines (1438 loc) · 212 KB

Serenity BDD core change Log

upcoming (2016/06/29 15:37 +00:00)

Pull requests:

Commits:

Avoid trying to read a screenshot file if it is not in the working directory.

  • 6947f1f refactor: refactored tests to use MD5 filenames (@wakaleo)
  • 8fa16c0 refactor: allow HTML reports to be generated uniquely from the JSON (@wakaleo)

v1.1.37-rc.6 (2016/06/22 20:43 +00:00)

Pull requests:

  • #457 Add ability to see response body for responses with HTML content type in report (@viktor-klymenko)

Commits:

v1.1.37-rc.5 (2016/06/15 11:28 +00:00)

Pull requests:

  • #454 Add ability to assert that matched element is not present in collection (#453) (@viktor-klymenko)

Commits:

now it is possible to assert that element is not present in collection using BeanMatcherAsserts.shouldNotMatch(List<T> items, BeanMatcher... matchers) method

v1.1.37-rc.4 (2016/06/10 16:53 +00:00)

Commits:

v1.1.37-rc.3 (2016/06/10 08:41 +00:00)

Commits:

v1.1.37-rc.2 (2016/06/09 09:05 +00:00)

Pull requests:

Commits:

You can now use soft asserts to combine a task to be executed, and a check to perform, optionally annotated with a business rule. This makes it much easier to check several business or validation rules on the same screen, in the same test. Sample code: ''' then(alice).should( seeThat(TheValidationMessages.displayed(), reportsErrors("BSB must be 6 digits")). whenAttemptingTo(EnterABankAccount.bsbValueOf("1234")). because("BSB cannot be a number with less than 6 digits"), seeThat(TheValidationMessages.displayed(), reportsErrors("BSB must be 6 digits")). whenAttemptingTo(EnterABankAccount.bsbValueOf("qwerty")). because("BSB cannot have alphabetical characters"), seeThat(TheValidationMessages.displayed(), reportsErrors("BSB must be 6 digits")). whenAttemptingTo(EnterABankAccount.bsbValueOf("~!@#$%^&*(")). because("BSB cannot have symbols"), ); '''

v1.1.37-rc.1 (2016/06/06 20:07 +00:00)

Pull requests:

v1.1.36 (2016/06/02 19:43 +00:00)

Pull requests:

Commits:

Renamed the 'browse-the-web' module to 'serenity-screenplay-webdriver' for more consistancy.

  • 0ea09c7 fix: Fixed an issue with the screenplay webdriver integration (@wakaleo)

Browser windows were not closing correctly when there were more than one driver used in a single test.

  • de85892 chore: General refactoring and fixing minor performance issues. (@wakaleo)
  • e9f8131 fix: Fixed an issue where the screenplay module was not closing the last browser if several browsers were being used in a test (@wakaleo)

v1.1.35 (2016/05/27 14:12 +00:00)

Commits:

v1.1.34 (2016/05/20 08:31 +00:00)

Pull requests:

v1.1.33 (2016/05/18 15:48 +00:00)

v1.1.32 (2016/05/18 14:38 +00:00)

Commits:

  • 2262c00 fix: Incorrect alignment of index.html file when story title is too long (#39) (@wakaleo)
  • b6b55ed fix: multiple csv file used as test data issue (#247) (@wakaleo)

v1.1.32-rc.2 (2016/05/16 21:35 +00:00)

Pull requests:

Commits:

  • 32b0850 fix: Fixed #227 - issue with resetImplicitTimeout (@wakaleo)
  • 3bbb0c0 fix: updated implementation to support multiple constructors in steps libraries (@YamStranger)
  • 3df916a test: added test to check how serenity works with multiple constructors in step libraries (@YamStranger)
  • 70c7680 fix: Fixed issues that resulted in declared drivers not being reported correctly. (@wakaleo)
  • 837dc49 fix: Wrong wrapping params in step name (#246) and Assertion messages are displayed incompletely in report in case of failure (#380) (@wakaleo)
  • b491091 fix: Fixed an issue where tests that failed when using the @Test expected attribute where not being reported correctly. (@wakaleo)
  • b50a1f8 test: fixed test to work with new isAlive implementation (@YamStranger)
  • b902c2e fix: updated isAlive implementation to work with appium (@YamStranger)
  • bea7f47 feat: updated rest report template (@YamStranger)
  • cc81c5f fix:Fixed a reporting issue with the PageTitleQuestion class (@wakaleo)
  • fab8b79 fix: fixed alive function to work with appium (@YamStranger)

v1.1.32-rc.1 (2016/04/20 14:23 +00:00)

Pull requests:

v1.1.31 (2016/04/20 04:59 +00:00)

Pull requests:

  • #358 Rest core updated. Fixed issues with reason in old structure (@YamStranger)

Commits:

  • 117dbf2 feat: serenity rest core updated to return updated configurations, filters, etc. (@YamStranger)
  • 2787384 feat: serenity-rest implemented recording of boyd, content-type, path, method, prepared recoding structure (@YamStranger)

Now it will be is easy to include in restQuery recording info about cookies, headers, and so on using filtering RestAssured mechanism

  • 2d4719b feat: serenity-rest supported sequences of operations in different steps: (@YamStranger)

Now it is possible run sequence of rest operations, with restspecification and response shared in one thread:

class RestSteps {
[@Ste](https://github.com/Ste)p
def successfulGet(final String url) {
given().get(&quot;$url/{id}&quot;, 1000).then().body(&quot;id&quot;, Matchers.equalTo(1000));
}
[@Ste](https://github.com/Ste)p
def getById(final String url) {
rest().get(&quot;$url/{id}&quot;, 1000);
}
[@Ste](https://github.com/Ste)p
def thenCheckOutcome() {
then().body(&quot;Id&quot;, Matchers.anything())
}
}
  • 52e54a9 feat: implemented wrapping of request specification after multypart request configurations (@YamStranger)
  • 5b6c531 feat: implemented wrapping of request after configuring cookies (@YamStranger)

Now serenity rest will work correctly after operations like below:

given().cookies(mapWithCookies).get(url)
given().cookies(&quot;value&quot;).get(url)
given().cookies(&quot;value&quot;, param).get(url)
  • 5bdeda5 feat: serenity-rest implemented wrapping for all requests in SerenityRest class, all covered by tests (@YamStranger)
  • 7c0f58a test: added test to ceheck wrapping after cookie operations (@YamStranger)
  • 7d5f5c8 test: implemented test for wrapping request with configured multipart request (@YamStranger)
  • 8040ade feat: serenity-rest implemented recording of all basic fields, like status-code, body, path, method. Implemented recoding of exceptions. (@YamStranger)

Now all operations will be recorded, after request executed, in report all fields will appear in same format as send. After this update content/body should be matched with additional transformation, because if string contains json/xml it will be reformatted by RestAssured, for example for Json it can be:

...
import static net.serenitybdd.rest.staging.JsonConverter.*;
...
assert formatted(query.responseBody) == formatted(body)

Introduced DecomposedContentType class for representation simple content types: if in rest assured defined only:

ANY(&quot;*/*&quot;),
TEXT(&quot;text/plain&quot;),
JSON(&quot;application/json&quot;, &quot;application/javascript&quot;, &quot;text/javascript&quot;),
XML(&quot;application/xml&quot;, &quot;text/xml&quot;, &quot;application/xhtml+xml&quot;),
HTML(&quot;text/html&quot;),
URLENC(&quot;application/x-www-form-urlencoded&quot;),
BINARY(&quot;application/octet-stream&quot;);

not it will be possible define something like that given().contentType(&quot;$APPLICATION_JSON&quot;) for:

ANY(&quot;*/*&quot;),
TEXT(&quot;text/plain&quot;),
APPLICATION_JSON(&quot;application/json&quot;),
APPLICATION_JAVASCRIPT(&quot;application/javascript&quot;),
APPLICATION_XML(&quot;application/xml&quot;),
TEST_XML(&quot;text/xml&quot;),
APPLICATION_XHTML_XML(&quot;application/xhtml+xml&quot;),
TEST_JAVASCRIPT(&quot;text/javascript&quot;),
HTML(&quot;text/html&quot;),
URLENC(&quot;application/x-www-form-urlencoded&quot;),
BINARY(&quot;application/octet-stream&quot;);

as well as find some RestAssured content type by DecomposedContentType or String:

DecomposedContentType.byString(&quot;application/javascript; Charset: UTF-8&quot;).contentType()
  • 8d3e5c9 feat: serenity rest core decomposed to make possible to use different classes for different purposes. (@YamStranger)

Now it is possible to execute almost all serenity rest operations using SerenityRest (90+ methods) or use smaller classes: RestDefaults (50+ methods)can be used for configuratins only default parameters RestRequests (20+ methods)can be used for making requests RestUtility (20+ methods)can be used for initialising some default or reusable objects

  • a608efe feat: serenity-rest-assured updated rest core and tests, renamed some classes (@YamStranger)
  • ae9e4a8 feat: serenity-core updated restQuery and reports to include Cookies and headers, changed wrapping of request and response (@YamStranger)
  • b99deb4 test: serenity-rest created test to check how dryRun works for serenity rest (@YamStranger)
  • ca6690e test: serenity-rest implemented test to check if body, contenttype, responce is recorded (@YamStranger)
  • d869ad2 test: serenity-rest implemented tests to check how recording of rest requests and reponses works (@YamStranger)
  • de2dc5e feat: implemented support of DryRun for Serenity Rest (@YamStranger)
  • ebe88bd feat: serenity rest core decomposed to make possible use shaned method invocations for configuring default parameters. (@YamStranger)
  • f5eb645 test: serenity-rest implemented test to check if failed query recorded and it is possible to use assertions (@YamStranger)

v1.1.30 (2016/04/05 13:55 +00:00)

Commits:

  • 08c4823 test: serenity-rest tested to configure base path and pase uri and other base configurations (@YamStranger)
  • 146b1d8 feat: serenity-rest implemented wrapping of request after redirects configuration (@YamStranger)
  • 231052b feat: implemented wrapping after operations with body, content, headers, contentTypes (@YamStranger)

Now serenity-rest will work correctly with opertions like:

given().contentType(ContentType.XML).get(url)
given().contentType(ContentType.XML).get(url)
given().headers(map).get(url)
given().header(CONTENT_TYPE.asString(), ContentType.JSON).get(url)
given().contentType(&quot;application/json&quot;).content(body).post(url)
  • 30105b4 test: created tests to check if HEAD operatin works correctly and return empty body (@YamStranger)
  • 432e5f6 feat: implemented wrapping during executing on request instance operations like when, with, given, and (@YamStranger)
  • 443ca49 test: serenity-rest, added tests for checking https requests and auth params configurations (@YamStranger)
  • 4cb9449 feat: implemented wrapping of request/response after HTTPS and Auth configurations (@YamStranger)

Now, rest assured will use wrapped request and response after configurations like below:

given().relaxedHTTPSValidation().get(url)
when().authentication().basic(&quot;login&quot;,&quot;password&quot;).get(url)
given().authentication().none()
given().auth().oauth2(token)
given().authentication().basic(&quot;user&quot;, &quot;password&quot;)
  • 5b6b67f feat: wrapped put request, updated wrapping of get request - to use only one function-endpoint (@YamStranger)
  • 5cc45f3 feat: in serenity-rest implemented setting base path, base uri, session id, port, urlEncodingEnabled (@YamStranger)

To set base paramters next code can be used:

given().basePath(path).get(url)
given().baseUri(base).port(port).get(path)
given().baseUri(base).port(port).get(path)
given().baseUri(base).basePath(&quot;/test&quot;).get(&quot;log/levels&quot;)
  • 63d9538 test: added tests to check wrapping response and request and correctness of setting body, content, headers (@YamStranger)
  • 6ed97f3 style: changed request organisation, added tests for get operation (@YamStranger)
  • 794f5af test: serenity-rest, added tests for checking wrapping after redirects configuration (@YamStranger)
  • 7a014ec feat: implemented HEAD, PATCH, DELETE, OPTIONS, POST operations and wrapping of results (@YamStranger)
  • 7f439d2 test: serenity-rest added tests for using chains of given, and, when, with based on request instance (@YamStranger)
  • 81c6d30 feat: impelemented processing and wrapping of result for operations with pathParameter, queryParams, param, params, parameters, formParam (@YamStranger)
  • af19533 feat: implemented processing log operation with rest assurance, and created tests for it (@YamStranger)
  • ca059a5 test: added tests to check wrapping repsponse after PUT, POST, PATCH, DELETE, OPTIONS, HEAD requests (@YamStranger)
  • f1e2cde test: added tests for PUT operations (@YamStranger)

v1.1.29-rc.3 (2016/03/29 17:38 +00:00)

Pull requests:

v1.1.29-rc.2 (2016/03/25 14:57 +00:00)

Pull requests:

  • #367 Updated making screenshots for browsers without such abbility (@YamStranger)
  • #366 Updated making screenshort with died browser - nothing should be taken (@YamStranger)
  • #360 Fixed closing web driver when appium is used, it seems that window handles still does not implemented for Android devices, only for iOS (@YamStranger)
  • #354 fix: Issues with SerenityParameterized test requiring WebDriver (@jordanbragg)
  • #349 Updated scenario data driven steps processing for report - now report will contains steps as for first scenario (@YamStranger)
  • #348 Updated name of test method for Qualifier tests (@YamStranger)
  • #347 Updated processing of @Qualifier tag in junit tests with data tables. Now it is possible add short description to steps based on parameters value (@YamStranger)
  • #344 Created gradle build config for smoketests to execute them against latest serenty core (@YamStranger)
  • #339 Updated tests for rest-assurance to use wiremock server instead of petstore. Added TestCase rule - now it is possible initialize test using spock (@YamStranger)
  • #330 Updated store/load of outcomes - serenity.report.encoding property will be used with UTF-8 as default (@cliviu)

Commits:

  • 240b93b feat: added checking if browser alive before taking screenshot or saving page-source (@YamStranger)
  • 24c5d38 feat: added rule for configuration initialization of SerenityRest using configurtion Actions, added tests (@YamStranger)

Now it will be possible to use same default configuration of SerenityRest during execution different test methods:

[@Rul](https://github.com/Rul)e
def RestConfigurationRule rule = new RestConfigurationRule(
new RestConfigurationAction() {
[@Overrid](https://github.com/Overrid)e
void apply() {
setDefaultBasePath(&quot;home/units&quot;)
}
}, new RestConfigurationAction() {
[@Overrid](https://github.com/Overrid)e
void apply() {
setDefaultPort(0)
}
},)

Before test actions executed one by one, after tests SerenityRest.reset() is executed

  • 4315100 style: updated test, removed blank lines and unused imports (@YamStranger)
  • 4d2029c test: updated tests for rest-assurance to use wiremock server instead of petstore (@YamStranger)
  • 5b4590c feat: wrapped response from GET to make possible including in report validations (@YamStranger)

Now during execution then, expect, and validations like then.statusCode(200) used wrapped response. For example supported lines:

given()
.param(&quot;x&quot;, &quot;y&quot;)
.expect()
.statusCode(200)
.body(Matchers.equalTo(body))
.when()
.get(url)
given().get(url).then().statusCode(200)
  • 6417437 fix: updated scenario data driven steps processing for report - now report will contains steps as from first scenario (@YamStranger)
  • 6aefe69 test: refactored test for Qualifier (@YamStranger)
  • 71102ac fix: updated processing of @Qualifier tag in junit tests with data tables. Now it is possible add short description to steps based on parameters value (@YamStranger)
  • 7996d30 feat: updated serentyRest and tests. Checking Response and request wrapping during creation (@YamStranger)
  • 89e9512 test: added tests to check how taking screenshorts works with died browsers (@YamStranger)
  • 8fb8303 test: added tests to check wrapping during initialisation of requests and responses (@YamStranger)
  • 90ffb4e feat: implemented wrapping during initialisation of request and response using methods given,when,expect (@YamStranger)
  • a291ba1 feat: implemented SerenityRest methods for setting default values (@YamStranger)
  • a4d6b32 fix: When using SerenityParameterizedRunner tests there was a need to add [@Managed WebDriver in order to see the examples table. This is due to TestClassRunnerForInstanciatedTestCase not overriding initListener](https://github.com/Managed WebDriver in order to see the examples table. This is due to TestClassRunnerForInstanciatedTestCase not overriding initListener)s
  • a505bd9 fix: updated closing web driver when appium is used, it seems that window handles still does not implemented for Android devices, only for iOS (@YamStranger)
  • bf6d91e chore: created gradle build config for smoketests to execute them against latest serenty core (@YamStranger)
  • cd93fbb test: updated tests to check how SerenityRest works with expectation and validations like then, expect, statusCode etc (@YamStranger)
  • e6e6651 test: updated name of test method (@YamStranger)

v1.1.29-rc.1 (2016/03/02 17:33 +00:00)

Pull requests:

  • #335 Updated moving files. Now tmp files of reports will be moved only after stream will be closed (@YamStranger)
  • #333 Updated appium java client to 3.3.0 (@YamStranger)
  • #332 Updated processing of names to keep abbreviations of JSON CSV XML (@YamStranger)
  • #331 Updated appium configuration to be compatible with Appium 1.5 - appium.app is no longer required if appium.browserName is supplied (@hazmeister)

Commits:

v1.1.28 (2016/03/01 10:28 +00:00)

Pull requests:

  • #295 Updated test to check how darkroom works in parallel screenshot taking (@YamStranger)
  • #328 Included exception/assertion message into serenity report (@YamStranger)

Commits:

v1.1.27 (2016/02/29 11:09 +00:00)

Pull requests:

  • #326 Updated report generation to use temp files. (@YamStranger)
  • #324 Updated method to print exception if it will appear (@YamStranger)
  • #323 Updated loader and reporter to load and generate testoutcomes concurrently with tests, updated gson core to 2.4 (@YamStranger)
  • #319 Updated jbehave to 4.0.5 (@YamStranger)
  • #317 Updated checking of empty string to use StringUtils, for #310 (@YamStranger)
  • #316 Updated contiributing guide - explaned multiline commits and pull requests name convention (@YamStranger)
  • #311 Change log generated for all releases (@YamStranger)
  • #313 Fixed Test Failure stacktrace, now it can contain elements with no fileName (default.ftl), for #312 (@marek5050)

Commits:

v1.1.26 (2016/02/15 11:18 +00:00)

v1.1.26-rc.3 (2016/02/14 00:08 +00:00)

Commits:

You can now write code like this: jane.should(eventually(seeThat(TheClickerValue.of(clicker), equalTo(10)))) This will not fail if the matcher cannot be evaluated the first time, but will retry up to a maximum of 'serenity.timouts' seconds (5 by default).

v1.1.26-rc.2 (2016/02/13 11:26 +00:00)

Pull requests:

Commits:

Also allow conditional tasks of the following form: dana.attemptsTo( Check.whether(cost>100) .andIfSo(purchaseAPear) .otherwise(purchaseAnApple) ); Or with a Question<Boolean>: dana.attemptsTo( Check.whether(itIsTooExpensive) .andIfSo(purchaseAPear) .otherwise(purchaseAnApple) );

v1.1.26-rc.1 (2016/02/06 15:40 +00:00)

Pull requests:

Commits:

Use the Unless class static methods and a bolean expression, e.g.

Unless.the(items.isEmpty(), AddTodoItems.called(items))

or use a question of type Question<Boolean>:

Unless.the(itemsListisEmpty(), AddTodoItems.called(items))

v1.1.25 (2016/02/05 17:44 +00:00)

Commits:

The narrative was interrupted by the .value() so hidden away for now behind a more fluent method

v1.1.25-rc.6 (2016/02/04 23:36 +00:00)

Pull requests:

Commits:

  • 4b1537e Restored a renamed method to maintain backward compatibility. (@wakaleo)
  • 9e66e4b fix: updated commons-collection for jira/jbehave/cucumber modules (@YamStranger)

v1.1.25-rc.5 (2016/02/04 15:06 +00:00)

Commits:

v1.1.25-rc.4 (2016/02/03 17:49 +00:00)

Pull requests:

Commits:

  • 0a9e50a Fixed #255 (@wakaleo)
  • 123e26d fix: updated processing of "browserstack.os.version" and "browserstack.browser.version" system properties according to latest changes on BrowserStack side (@ovenal)
  • 1b3aa65 Removed the .gitattribues file from git as it causes problems with the build pipeline on Snap-CI (@wakaleo)
  • 4531d43 Fixed issue #281 (@wakaleo)

During verbose logging, Serenity tried to read the tag from web elements. This could cause failures if the element was stale or unavailable when the logging happen. This has now been changed to log the locator and not the element tag type.

  • 55b06c1 chore: updated wrapper, and build publishing libs (@YamStranger)
  • 737b1aa chore: updated wrapper, and build publishing libs (@YamStranger)
  • 9429532 Moving definition of reportDirectory in order to allow easy configuration through the serenity block. Currently this directory gets set when applying the plugin, which makes it only possible to change through setting an environment variable at the same level as applying the plugin. For multi-module projects with compile dependencies, this does not work
  • 9eb9390 chore: updating gitignore (@YamStranger)
  • 9f1f6b5 Added an Action class to scroll to a particular eleemtn on the screen. (@wakaleo)
  • ba8fcee Hardened some of the integration tests (@wakaleo)
  • e772cd1 Attempt to make some of the tests more robust. (@wakaleo)
  • e96d512 style: updated test (@YamStranger)
  • ed33d6a Updated to Seleniy, 2.49.1 (@wakaleo)

v1.1.25-rc.3 (2016/01/22 13:08 +00:00)

Pull requests:

  • #271 #268 Fix issue with custom step name when a method parameter contains with comma (@ovenal)
  • #270 BrowserMob Proxy, updated to use the new browsermob-core-littleproxy embedded mode (@slawert)
  • #266 Updated org.gradle.workers.max value to reduce memory usage (@YamStranger)
  • #263 Updating config to build subprojects in parallel (@YamStranger)
  • #258 Updating core to support report generation for multimodule projects with gradle/mvn (@YamStranger)

Commits:

  • 0a8a185 chore: updated build to enable paralell build (@YamStranger)
  • 12b5943 chore: updated org.gradle.workers.max value to reduce memory usage during build (@YamStranger)
  • 2462460 fix: updated build task dependecies (@YamStranger)
  • 36225a5 fix: report generation for multimodule builds (@YamStranger)
  • 418d37c chore: updated org.gradle.workers.max value to reduce memory usage during build (@YamStranger)
  • 42be3ba Browsermob update: using browsermob-core-littleproxy instead of old browsermob-proxy (@slawert)
  • 530450b fix: updated resolution of output dir based on gradle/maven module (@YamStranger)
  • 60b1b99 Fine-tuned the soft-assert tests and minor reporting bug fix. (@wakaleo)
  • 864c00c delted maven repo from build.gradle (@slawert)
  • 89eebf5 fix: serenity.properties can be located not in workin dir, but in gradle/maven module folder (@YamStranger)
  • 9d04622 fix: customized step title if some parameter contains comma character (@ovenal)
  • 9d6e27d chore: updated org.gradle.workers.max value to reduce memory usage during build (@YamStranger)
  • adc66f3 added a test to check the test report output; updated previously failed tests for customized step title (@ovenal)
  • af3562d updated existing tests after changes in ExecutedStepDescription class (@ovenal)
  • c47b69d chore: build test parallel execution enabled (PerCore) (@YamStranger)
  • c9c9e1b chore: turn off parallel execution of submodules (@YamStranger)
  • e25d548 added the tests to cover storing arguments list in ExecutedStepDescription class (@ovenal)
  • f973f15 fix: updated plugin to get serenity.properties from current module build dir (@YamStranger)

v1.1.25-rc.2 (2016/01/14 18:42 +00:00)

Commits:

v1.1.25-rc.1 (2016/01/13 14:31 +00:00)

Pull requests:

Commits:

v1.1.24 (2016/01/10 21:48 +00:00)

Pull requests:

Commits:

v1.1.22-rc.15 (2016/01/05 14:12 +00:00)

Commits:

  • 5944609 When using a unique browser for multiple tests, clear the cookies and HTML local storage between tests. (@wakaleo)
  • 8d6dafa Fixed a bug in the reporting of Journey Pattern web actions. (@wakaleo)
  • c200b32 Improved the reporting of Journey pattern by removing redundant "is" clauses generated by the Hamcrest matchers. (@wakaleo)

v1.1.22-rc.14 (2015/12/28 11:31 +00:00)

Commits:

  • 182dfa0 Refactored the Journey Pattern code (@wakaleo)
  • a700aa2 The Target class now accepts a prefix notation to specify the locator, e.g Target.the("name field").locatedBy("css:#name") or Target.the("name field").locatedBy("id:name") (@wakaleo)
  • b658677 Added the Evaluate action and the JavaScript question to perform JavaScript queries. (@wakaleo)
  • e8d86a9 Refactored a journey pattern test to illustrate the displays matcher (@wakaleo)
  • e9610ed Refactored the Enter action to allow entering text and keys in the same action (@wakaleo)
  • ef0e61a Updated the smoke tests. (@wakaleo)

v1.1.22-rc.13 (2015/12/25 21:42 +00:00)

Commits:

  • 0061513 Added a method to the WebDriverManager instance to retreive a named webdriver instance. (@wakaleo)
  • 5fdf07c Fixed a bug where enums did not appear correctly in the test reports when they were referenced by Journey Pattern Questions. (@wakaleo)
  • 7e41d67 Trying to fixe a performance issue related to resource copying (@wakaleo)
  • 8dad9cc Added the ability to use the Serenity WebDriver API directly in Action classes, by extending the WebAction class. (@wakaleo)
  • c826177 Refactored the bundled Journey Pattern action classes. (@wakaleo)
  • edcdc4a It is now possible to add page objects as member variables in Performable or Question classes - they will be correctly configured with the WebDriver instance associated with the actor. (@wakaleo)
  • eec89ad Fixed a bug that reported a misleading "class cast exception" when the moveTo() method was called after a test failure. (@wakaleo)

v1.1.22-rc.12 (2015/12/21 15:20 +00:00)

Pull requests:

Commits:

v1.1.22-rc.11 (2015/12/07 07:09 +00:00)

Pull requests:

Commits:

  • 2cec6f2 fix: Fix for setting serenity.proxy.type and http_port. Needs to be an number instead of string. (@eskape)
  • 5f8752f 216_issue: update versions (@YamStranger)
  • 7ab6c25 197_issue: updated SerenityRest to log all types of input for content/body rest call (@YamStranger)
  • 7c4e0df fix: cglib dependency conflict from guice (@schmurgon)
  • 86ff95a 216_issue: update versions (@YamStranger)
  • c44f078 218_issue: added test for checking if web scenarious executed successfully with HTMLUnit (fails now, so added @Ignore) (@YamStranger)
  • f998b4a 185_issue: log and auth wrappers implemented, tests profivided. redirects still not supported (@YamStranger)

v1.1.22-rc.10 (2015/11/24 23:42 +00:00)

Pull requests:

Commits:

  • 81c87bb Fixed an error with the screenshots that always displayed the screen source link, even for successful tests. (@wakaleo)
  • 9f90752 Retry to unzip a resource file if it is locked. This is a work-around for Windows-related file locking issues. (@wakaleo)
  • c9889ca Added more robustness to the report generation by allowing ZIP files to be opened again if they couldn't the first time (@wakaleo)
  • e21e9a5 Updated tests (@wakaleo)
  • fc8442b Restored step logging to INFO. (@wakaleo)

v1.1.22-rc.9 (2015/11/23 00:33 +00:00)

Commits:

v1.1.22-rc.8 (2015/11/19 20:53 +00:00)

Commits:

  • 552172c Set the serenity.console.colors property to true to get ANSI colors in the console output (don't use on Jenkins). (@wakaleo)

v1.1.22-rc.7 (2015/11/19 10:55 +00:00)

Commits:

  • d4791cd Fixed a bug that prevented @Pending annotations from working with non-instrumented Performable objects (@wakaleo)

v1.1.22-rc.6 (2015/11/19 04:43 +00:00)

Pull requests:

Commits:

v1.1.22-rc.4 (2015/11/12 08:47 +00:00)

Commits:

  • 4c20cd5 Minor improvement to assertion reporting, to avoid lines being hidden for some assertions (@wakaleo)

v1.1.22-rc.3 (2015/11/12 07:39 +00:00)

Commits:

  • 8edf62c Better handling of reporting arbitrary AssertionError exceptions. (@wakaleo)

v1.1.22-rc.2 (2015/11/12 06:03 +00:00)

Pull requests:

Commits:

v1.1.22-rc.1 (2015/11/09 20:41 +00:00)

Commits:

Add the 'serenity.linked.tags' property, which allows you to defined tag types which will result in human-readable tags that can be used as bookmarks or external links.

v1.1.21 (2015/11/06 10:46 +00:00)

Commits:

v1.1.20 (2015/11/05 15:05 +00:00)

Commits:

  • 00d0237 Added the 'serenity.tag.failures' property, which causes Serenity to add a tag containing the error type for failing tests (@wakaleo)
  • 0e77755 Added the 'serenity.tag.failures' property, which causes Serenity to add a tag containing the error type for failing tests (@wakaleo)

v1.1.19 (2015/11/04 15:27 +00:00)

Commits:

  • ba52bc4 Fixed a potential infinite loop in the report generation if image processing failed for some reason (@wakaleo)

v1.1.18-rc.2 (2015/11/04 10:16 +00:00)

Pull requests:

Commits:

v1.1.18-rc.1 (2015/10/31 12:10 +00:00)

Pull requests:

Commits:

This reverts commit 4397786f9fd7f37cb6c2e4f00741a2343e9e4d57, reversing changes made to 84d095558dcd61554c2a0a988977bb1e9eecb71d.

  • 84d0955 Refactoring of the report generation code to rectify #160 (@wakaleo)
  • 8fedb54 Refactoring WebDriver integration to use the ThucydidesWebDriverSupport class (@wakaleo)
  • a1979bb 130_issue: removed emtpy lines (@YamStranger)
  • a4dc59d Fixed typo in the smoketests (@wakaleo)
  • ad77459 Made the instantiation of test steps more robust, mainly for use in the Journey pattern (@wakaleo)
  • c497bb6 Updating dependencies for the smoketest project (@wakaleo)
  • c66f0fe Fixed an issue with the reporting of pending and skipped tests (@wakaleo)
  • d5883db 130_issue: updated simple-gradle-project for serenity-gradle-plugin
  • d9eca6e Fixed typo in the smoketests (@wakaleo)
  • e8607af 130_issue: fixed. Added sample projects for testing serenity-gradle-plugin (@YamStranger)
  • ee6807e 130_issue: updated simple-gradle-project for serenity-gradle-plugin

v1.1.17 (2015/10/28 08:22 +00:00)

Commits:

  • 032dbb6 Added a general solution for defining or overriding how exceptions should be reported. (@wakaleo)
  • 3c39729 You can use the serenity.pending.on property to define exceptions that will cause a test to be marked as Pending. (@wakaleo)
  • d2f951a Added the serenity.error.on, serenity.fail.on and serenity.pending.on properties to the ThucydidesSystemProperty class. (@wakaleo)

v1.1.17-rc.4 (2015/10/28 01:41 +00:00)

Commits:

Use FontAwesome for more readable test result icons.

You can now specify your own exceptions that will cause a failure by using the /serenity.fail.on/ property. You can also specify those that will cause an error using /serenity.error.on/.

Exceptions such as ElementShouldBeInvisibleException are now reported as failures, not errors.

v1.1.17-rc.3 (2015/10/22 10:50 +00:00)

Pull requests:

Commits:

  • 4d6e9bc Refining support for multi-thread report generation to avoid contention on resource files (@wakaleo)
  • 652c048 Test that checks to see if the proxy driver class is returned when the the driver class is the provided driver (@willhuang85)
  • 93f8e34 Refactoring the html resource copying code. (@wakaleo)
  • ad3af93 Having ProvidedDriver implement JavascriptExecutor should not be the correct way to fix THUCYDIDES-253. The method that checks if the driver is javascript enabled looks at the driver class returned from WebDriverFacade and in the case, it will see that ProvidedDriver implements JavascriptExecutor but when it tries to execute javascript on the proxied driver that does not necessarily have to implement JavascriptExecutor, then it will throw a method not found exception. This proposed fix checks if the driverclass in the WebDriverFacade is a provided driver, if it is, then the correct driver class it should look at is contained in the proxied driver. (@willhuang85)
  • b16d29a Refactoring (@wakaleo)

v1.1.17-rc.2 (2015/10/22 07:26 +00:00)

Pull requests:

  • #149 refactor: Corrects throwning of IOException, instead of Exception (@verhagen)
  • #148 fix loop when parameter is null in ddt tests (@AlexeyDybov)

Commits:

v1.1.17-rc.1 (2015/10/18 14:57 +00:00)

Pull requests:

Commits:

Added multi-thread testing for the screenshot pipeline, and removed misleading warnings that could happen when two threads try to save the same screenshot.

Replace usage of java Optional with Guava optional

v1.1.16 (2015/10/13 04:18 +00:00)

Commits:

v1.1.15 (2015/10/11 22:49 +00:00)

Pull requests:

Commits:

Updates thucydides-core with exclusion of log4j Adds dependency log4j-over-slf4j

thucydides-junit 0.8.31 (was 0.8.1-SNAPSHTOT) thucydides-core 0.8.31 (was 0.8.1-SNAPSHTOT) Adds dependency slf4j-simple 1.6.4

not available from the System.getenv()

  • 5556dda chore: Adds profiles 'firefox' and 'chrome', for easier running the (@verhagen)

tests with different browsers.

redirects from 'google.com' to country specific google search pages.

  • 666e9dc refactor: Removes maven-easyb-plugin, is not used, or correct me if I'm (@verhagen)

wrong.

structure

  • 7b58b52 Renames package 'net.serenity_bdd.' into 'net.serenitybdd.', to bring (@verhagen)

them inline with the rest

  • 7d21048 fix: Corrects issue auto forwarding from google.com to google.xxx the (@verhagen)

country specific search page.

v1.1.14 (2015/09/26 21:43 +00:00)

Pull requests:

  • #133 Added 'feature.file.encoding' system property to specify an encoding of Cucumber files (@joxerTMD)

Commits:

v1.1.13 (2015/09/20 04:40 +00:00)

Commits:

  • 1c3eb5e Fixed an issue that caused tests with multiple actors to report steps out of order. (@wakaleo)
  • 48305b4 Fixed an issue with the moveTo() PageObject method (@wakaleo)
  • d131e15 Fixed an issue with taking screenshots when using multiple browsers (@wakaleo)

v1.1.12 (2015/09/16 07:44 +00:00)

Commits:

v1.1.11 (2015/09/16 04:41 +00:00)

Commits:

v1.1.10 (2015/09/07 04:11 +00:00)

Pull requests:

  • #126 fix: prevent null pointers when generating reports (@afoltin)

Commits:

v1.1.9 (2015/09/01 08:00 +00:00)

Commits:

v1.1.8 (2015/09/01 06:22 +00:00)

Pull requests:

Commits:

Only record REST responses for non-binary response types.

v1.1.7 (2015/08/31 02:24 +00:00)

Commits:

Actors can now ask questions directly, e.g.

Integer totalCost = dana.asksFor(theTotalCost());

They can also remember the answers to questions for future use:

dana.remember("Total Cost", theTotalCost()); assertThat(dana.recall("Total Cost")).isEqualTo(14);

v1.1.6 (2015/08/25 03:33 +00:00)

Pull requests:

Commits:

DriverSources may implement some non-trivial logic, so it is very handy for debugging to include in stack trace exception occurred while tried to initialize new webdriver. Especially in multi-node test environment configurations.

To better illustrate tasks/interaction layers.

  • 6345844 Removed redundant code that was causing errors in the reports. (@wakaleo)

If there were more than one given clause in a journey-style test, the initial givens where incorrectly nested.

  • 743ec7b Revolving dependency conflicts with hamcrest 1.1 (@wakaleo)
  • a208972 Ensure that Consequence steps are not evaluated after a previous step has failed. (@wakaleo)
  • d3d2e38 Removed unnecessary warning messages (@wakaleo)
  • f77a999 Refactoring and better console reporting. (@wakaleo)
  • f7dc3d7 Added support for dropdowns in the interaction-level bundled Performables. (@wakaleo)

v1.1.5 (2015/08/17 18:57 +00:00)

Pull requests:

Commits:

v1.1.4 (2015/08/10 19:53 +00:00)

Pull requests:

Commits:

You can now inject any member variable in the step class by name into step descriptions You can now use member variables of a step library in the [@Step annotation to augment the step description. Just refer to the variable using the name of the variable prefixed by a "#", as shown in this example](https://github.com/Step annotation to augment the step description. Just refer to the variable using the name of the variable prefixed by a "#", as shown in this example):

private final String siteName = "Etsy"; @Step("Search for a shop called {0} on the #siteName website") public void searches_for_shop_called(String shopName) { homePage.searchForShopCalled(shopName); }

You can now include assertions in the tests and reports using the Consequence class.

You can now use member variables of a step library in the [@Step annotation to augment the step description. Just refer to the variable using the name of the variable prefixed by a "#", as shown in this example](https://github.com/Step annotation to augment the step description. Just refer to the variable using the name of the variable prefixed by a "#", as shown in this example):

@Reported private final String siteName = "Etsy"; @Step("Search for a shop called {0} on the #siteName website") public void searches_for_shop_called(String shopName) { homePage.searchForShopCalled(shopName); }

  • 9e49f8c Got successful and failing journey scenarios working, as long as the failing assertion is in the performAs method. Currently, if one of the chained methods fails, the following steps are not executed and the results are unpredictable (@wakaleo)
  • c0b0fff Added support for TypeSafeConfig (@wakaleo)
  • cd553eb Improve readability of "View stack trace" dialog (#103) (@wakaleo)
  • d29c52e Minor refactoring (@wakaleo)
  • e50e557 Refactored a unit test for more clarity (@wakaleo)
  • eeb1f73 Works for nested failing tasks (@wakaleo)
  • f353c36 Refactoring (@wakaleo)

v1.1.3 (2015/08/02 12:04 +00:00)

Commits:

  • 71f5684 Fixed an issue causing the drivers to be closed incorrectly during parallel tests (@wakaleo)

v1.1.2 (2015/07/30 09:49 +00:00)

Commits:

  • 6aae0d4 Added the 'uniqueInstance' attribute to the @Steps annotation to support multiple instances of the same step library in the same class (@wakaleo)
  • c4033ea Fixed colors in some of the reports causing text to be light grey on white (@wakaleo)

v1.1.1 (2015/07/26 01:49 +00:00)

Commits:

v1.1.0 (2015/07/25 04:49 +00:00)

Pull requests:

  • #94 Update BrowserStackRemoteDriverCapabilities.java (@9ikhan)

Commits:

Fixed a timeout issue related to using withTimeoutOf(...).waitForElementToDisappear()

Rest calls will now be skipped if you activtate 'dry-run' mode (e.g. by setting the 'serenity.dry.run' system property to true).

This option (set to false by default), lets you control the execution depth of the @Step methods after a step has failed. If set to true, it will run nested [@Step methods as well as top-level ones](https://github.com/Step methods as well as top-level ones).

v1.0.64 (2015/07/14 12:03 +00:00)

Commits:

Better error message reporting if a remote driver is incorrectly configured, and some minor refactoring.

v1.0.62 (2015/07/13 13:33 +00:00)

Commits:

v1.0.61 (2015/07/13 06:12 +00:00)

Pull requests:

Commits:

Also improved step logging to include the test class and method as well as the step name. Signed-off-by: John Ferguson Smart <john.smart@wakaleo.com&gt;

=== If local repository is dirty -Always builds a SNAPSHOT version. -Will complain that 'Stage {} is not one of [SNAPSHOT] allowed for strategy snapshot.' === If local repository is not dirty Set release type using property release.stage. Valid values are: -milestone -rc -final milestone creates a tag with the next version from tag + -milestone.# rc similar, but uses rc. Cannot create a milestone after an rc final creates a version with no endings If want to use ssh authorization, must ensure ssh-agent contains correct key for repository being worked on. If you experience issues, try ssh-add -D to clear identities and add the one identity for the repo in question. The release tags the current commit, and pushes to the remote repository. It does not check if there's a new commit, so only use it if you really need to. gradle bintrayUpload release -Prelease.stage={milestone|rc|final}

Declare additional transitive deps.

This reverts commit 44ec91e92d90ebc3742a6221f82d1a404b1baa57.

  • 0a7fdea Modifying screenshot code to work better with Windows (see #69) (@wakaleo)
  • 0aa2e31 Merged in Appium support and tweaked an internal class as a work-around for potential dependency issues related to commons-lang3 (@wakaleo)
  • 0c23f3a test: Temporarily disabling a test that doesn't work on the build server pending further investigation (@wakaleo)
  • 0dd7d28 Fixed a bug related to deriving requirements structures from Cucumber feature files. (@wakaleo)
  • 0e9d614 Moved most uses of FileUtils to the Java 7 Files class, in order to remove sporadic issues when resizing screenshots (@wakaleo)
  • 0fa63e2 Added containsElements() and shouldContainElements() methods to WebElementFacade (@wakaleo)
  • 0fbada9 chore:Updating the version of the gradle-git plugin (@wakaleo)
  • 11b84b7 More refactoring tests (@wakaleo)
  • 11b988b Use Durations rather than longs and ints to handle timeout values, in order to avoid coding errors, make the code clearer, and as a basis for more flexible timeout configuration. (@wakaleo)
  • 1290a90 Solidified a test (@wakaleo)
  • 1345adf Refactoring tests (@wakaleo)
  • 137c534 Unit test refactoring (@wakaleo)
  • 17466a5 Display the stack trace for failing tests in the reports (@wakaleo)
  • 18d5f80 Improved requirement reporting for JUnit (experimental) (@wakaleo)
  • 197d009 chore:Removed dependency on bintray plugin. (@wakaleo)
  • 197fab5 Top build: declare transitives as deps. #16 (@jeffjensen)
  • 199e60a Updated reporting, attempt 2 (@bmwsedee)
  • 1a4268c More refactoring tests (@wakaleo)

This reverts commit 7b26344dea3c0ee710ee90fe7040141a6941f97f.

Added "force version" on transitive versions with convergence problems. Issue: While this works to keep gradle build clean, it doesn't affect the generated POM/install for clients.

You can now add the serenity-rest-assured module to have tight integration with Rest Assured for testing REST web services. Serenity provides a wrapper around the RestAssured methods that reports on the REST queries sent and the responses recieved. Use the SerenityRest.rest() method as a starting point, e.g.

rest().given().contentType(&quot;application/json&quot;).content(jsonPet).post(&quot;http://petstore.swagger.io/v2/pet&quot;);
rest().get(&quot;http://petstore.swagger.io/v2/pet/{id}&quot;, pet.getId()).then().statusCode(200)
.and().body(&quot;name&quot;, equalTo(pet.getName()));
  • 23d2752 fix: Tidied up dependencies used by the other serenity modules (@wakaleo)
  • 2597415 Handle recursive parameters correctly (#66) (@wakaleo)
  • 25e0cd1 Updated release notes
  • 2648daa refactor: Create serenitybdd version of WebElementFacade classes/interfaces (@mikezx6r)

Deprecate Thucydides versions, but still handle them correctly

Also move a number of helper classes into serenity_bdd package

  • 2bde33a refactor: Move tests from thucydides to serenitybdd package (@mikezx6r)
  • 2c7b976 Fixed a bug preventing requirements to be loaded from the filesystem with JBehave. (@wakaleo)
  • 2cb5e77 fix: Fixed a bug where the reports fail to generate if there are skipped test results in the outcomes. (@wakaleo)
  • 2d48ba3 test:Updated some unit tests (@wakaleo)
  • 2e74fdf Simplified some tests (@wakaleo)
  • 2ec6dd2 ensure unused threads are terminated and removed from executor pool
  • 2eca74a fix: Fixed a bug in reading the requirements from the file system. (@wakaleo)
  • 2ed2864 [migrate] Move exceptions (@mikezx6r)
  • 2f58c3b Fixed some formatting and navigation issues in the reports (@wakaleo)
  • 3026d24 test: ensured that HTMLUnit tests closed the drivers to avoid memory leaks during the build. (@wakaleo)
  • 3049d14 Initial move over to Serenity from Thucydides (@wakaleo)
  • 308ec8f Updated the changelog to reflect the serenity-core repo. For Bintray this is a bit of a hack, since the BinTray serenity-core package gets artifacts from two repos, serenity-core and serenity-maven-plugin, which are separate only because of the fact that core needs to be built and deployed before the maven plugin generation task in the serenity-maven-plugin build can be done. So the changelogs will be up-to-date on Github for both repos, but the one on bintray will only reflect core. (@wakaleo)
  • 3144ad1 Upgrade groovy-all version for transitive convergence #16. (@jeffjensen)
  • 326a643 Fixed an issue in the reports where pending test results were not being accurately reported in the pie charts. (@wakaleo)
  • 33ff1a1 Allows explicit waits on web elements in a page (@wakaleo)

For example: withTimeoutOf(5, TimeUnit.SECONDS).waitFor(facebookIcon).click()

Correctly cater for exceptions without an error message.

  • 3620bc2 Fine-tuning the release pipeline (@wakaleo)
  • 36d471f Repositioned the report timestamp (@wakaleo)
  • 3705ee4 [rename] Create Serenity namespaced class, deprecate Thucydides version and delegate functions (@mikezx6r)
  • 3828027 fix: Fixed a bug in reading the requirements from the file system. (@wakaleo)
  • 3838821 feat: You can now automatically inject EnvironmentVariables and Configuration variables into your step libraries, simply by declaring a variable of the corresponding type. (@wakaleo)
  • 3883042 feat: nested page objects i.e. widget objects (@CoeJoder)

WidgetObject: reusable page fragment with a nested search context implied by the Composition pattern. This feature was requested here: https://groups.google.com/forum/#!topic/thucydides-users/-SiQwD86W8I https://groups.google.com/forum/#!topic/thucydides-users/01oNgOD9TnY See attached unit tests for usage examples.

  • 392bc01 Upgrade SLF4J version for transitive convergence #16. (@jeffjensen)
  • 395a9a6 Fixes unit tests - nullpointer exception fix when system property webdriver.remote.driver is not set (@eskape)
  • 39d059a Added a hasClass() method to the WebElementFacade (@wakaleo)

This method is a convenient way to check whether a web element has a particular CSS class.

  • 3a71aae refactor: PageObject still returns thucydides WebElementFacadeImpl so that can be cast to serenitybdd namespace (@mikezx6r)

This will need to be cleaned up when the thucydides namespace is retired.

It would appear that the main project was moved into core sub-directory, and these files didn't get cleaned up.

  • 400fca7 feat: Dropdown.selectByValue() (@kassemsandarusi)
  • 403003d Refactored the dependencies to use both the group and the module names in exclusions, to make the Maven Enforcer plugin happy (@wakaleo)
  • 40a532d Updated the Ascii Art banner. (@wakaleo)
  • 40db746 Enable selection of Mac Os version on SauceLabs
  • 4138f89 Check if a resized file for a given screenshot already exists, and if so don't perform the resizing (@wakaleo)
  • 413d839 Reformatting and tidying up imports (@wakaleo)
  • 42884b1 Don't display the browser icon for non-web tests. (@wakaleo)

Distinguish among Serenity Web Tests (Selenium) and Serenity Non-Web Test (#41)

Narrative text can now be read from non-English feature files, by setting the 'feature.file.language' system property.

  • 50c45e3 Adding an automatically generated change log to the build (@wakaleo)
  • 5205c75 Added better error reporting if a groovy expression in the build info properties was incorrect (@wakaleo)

Better error handling for Groovy expressions used in the “sysinfo.*” system properties that appear in the build info page.

Eventually, all Thucydides references will be removed.

Guava 18.0 is already specified in Gradle.

We now support reporting exceptions with a zero-parameter constructor as well as a single-parameter constructor.

Main project doesn't have anything to deploy, and doesn't have config. This causes a warning when building the project. Provide the config that is common across all projects in this config file, but no config for the main project is required.

  • 6e7255d Deprecate SpringIntegration.

Add SpringIntegrationMethodRule and SpringIntegrationClassRule, as well as the utility runner SpringIntegrationSerenityRunner, which conveniently automatically adds the aforementioned rules. (Note that some of the main code and test code for the above new classes were originally written in Java 8 and used method references, lambdas and java.util.function.*. To get Java 7 support, these has been replaced by interfaces and anonymous inner classes, but if the project ever moves to Java 8, it is recommended that these are replaced once again).

HtmlUnit uses 3.3.2, Serenity was using 3.1.

  • project-report:
  • gradlew htmlDependencyReport creates HTML dep report that shows which deps the build managed to different version.
  • com.github.ben-manes.versions:
  • gradlew dependencyUpdates shows deps with new versions

injected into JUnit tests.

Added all possible parameters for CSVReader to be able to parse special chars like \n \t ...

  • 805dbf1 Logs a message indicating the path of the generated reports after report aggregation. (@wakaleo)
  • 80e1ef0 Repositioned the report timestamp (@wakaleo)
  • 80ee2cf chore: Automated the generation of the release notes from the git commits (@wakaleo)
  • 81fd920 Removed system properties from the JUnit results to save space. (@wakaleo)
  • 8208430 Updated release notes
  • 826c30f Refactored the PageObject class for better backward compatibility. (@wakaleo)
  • 828c57a Made the JSON tests a bit more robust (@wakaleo)
  • 82b9866 Migrated the default output directory to target/site/serenity (@wakaleo)
  • 82d1ab1 tests: test hardening (@wakaleo)
  • 8344474 Added support for the AssumeThat method for JUnit tests - AssumeThat will result in a test being displayed as 'ignored' in the reports. (@wakaleo)
  • 85f5802 Changed the default page size for the test results to 50. (@wakaleo)
  • 878c2a1 Added better support for radio buttons in the PageObject class (@wakaleo)
  • 8835d57 Harmonized test data (@wakaleo)
  • 88dbe9c Restored release notes (@wakaleo)
  • 892b4fe Improved reporting of JUnit tests as requirements (@wakaleo)
  • 897226e Added containsElements() methods to the PageObject class. (@wakaleo)
  • 89f6ca5 Provide better support for step-level error reporting in Cucumber. (@wakaleo)
  • 8b360c1 Removed Jackson dependencies (@wakaleo)
  • 8ba6aeb Honor both 'thucydides.properties' and 'serenity.properties' files for local project configuration (@wakaleo)
  • 8bdaf7d [rename] Move SerenityListeners and create deprecated ThucydidesListeners (@mikezx6r)
  • 8d8b0bf You can now use serenity.* instead of thucydides.* system properties. The thucydides.* system properties are still supported, but a warning is printed to the logs. (@wakaleo)
  • 8e8b01a Fixeds #81 (@wakaleo)
  • 8fb2e5e Better error reporting for errors around the @DefaultUrl definitions for Page Objects. (@wakaleo)
  • 8fee3ad Chrome no longer opens a new window when you specify the browser size. (@wakaleo)

Also, the browser is now automatically positioned in the top left hand corner of the screen. Signed-off-by: John Ferguson Smart <john.smart@wakaleo.com&gt;

  • 911799b Fixed issues with identifying appium driver (@schmurgon)
  • 924764f feat: Improved the readability of parameters in the screenshot pages. (@wakaleo)
  • 931e476 fix: Tidied up dependencies used by the other serenity modules (@wakaleo)
  • 93b836f fix: fixed an issue loading the JSON test reports during aggregate report generation. (@wakaleo)
  • 948caa8 Updated release notes
  • 95f84a1 JUnit tests using the 'expected' attribute are not supported. (@wakaleo)
  • 97156bd Added support for better Cucumber reporting (@wakaleo)
  • 9716bc5 Make sure the release notes are produced dynamically (@wakaleo)
  • 9784811 Migrated the PageObject class to the serenitybdd namespace. (@wakaleo)

Signed-off-by: John Ferguson Smart <john.smart@wakaleo.com&gt;

  • 98073bd Added SerenityRunner and SerenityParameterizedRunner classes as alternative names for ThucydidesRunner and ThucydidesParameterizedRunner, more in line with the new naming schema. (@wakaleo)
  • 9a6c99d fix: Fixed a bug in reading the requirements from the file system. (@wakaleo)
  • 9b7e9c4 Hardening unit tests (@wakaleo)
  • 9ba8c65 Minor formatting fixes in the reports. (@wakaleo)
  • 9d25a1a Refactored the dependencies to use both the group and the module names in exclusions, to make the Maven Enforcer plugin happy (@wakaleo)
  • 9d9c5a4 Added a convenience method to allow more fluent waitFor() constructs (@wakaleo)
  • 9e47250 Improved release notes to avoid empty tags (@wakaleo)
  • 9e65332 Added tests to doument implicit wait behavior (@wakaleo)
  • 9e9711d Added extra support for handling Cucumber example tables (@wakaleo)
  • a05b31f Undid javascript library updates and added the number of tests for tags on the reports (@wakaleo)
  • a100646 Updated to Selenium 2.46.0 (@wakaleo)
  • a1dba09 feat: You can now distinguish between AJAX element waits (defaults to 500 ms) and explicit fluent waits (which default to 5 seconds) (@wakaleo)
  • a2d03c8 Fix for THUCYDIDES-253 (@wakaleo)
  • a2d3a0f Refactored optional Spring dependencies into the serenity-spring module - include this module if you want Serenity to honor Spring annotations and dependency injection (@wakaleo)
  • a3c95dc Updated JavaScript InfoVis Toolkit (@bmwsedee)
  • a47b0ae Fixed #64: issue with resetting implicit timeouts (@wakaleo)
  • a549ef0 Fixed a bug where tests hung if an invalid selector was used in a waitFor expression. (@wakaleo)
  • a5c86db Refactored unit tests for more clarity (@wakaleo)
  • a6d6cc6 Fixed an issue with Cucumber requirements reporting when the name of the feature differs from the name of the feature file. (@wakaleo)
  • aa1c3ed Update CSVTestDataSource.java (@x-hovo-x)
  • ac3de4e tests: hardeding the timeout tests (@wakaleo)
  • ac5ff92 Ensure that the correct stack trace is displayed in the reports (@wakaleo)
  • ac60be6 Fixed an issue with Cucumber requirements reporting when the name of the feature differs from the name of the feature file. (@wakaleo)
  • ace9f68 Fixed bug that prevents the arrow keys working in the screenshot slideshow on webkit browsers (@wakaleo)
  • ad3a486 [migrate] Move SessionMap (@mikezx6r)
  • ad4800e Getting the maven plugin build working (@wakaleo)
  • ad83c2a Display full screenshots in the slideshow view. (@wakaleo)
  • afaf0b9 Fix to remove 'Session ID is null. Using WebDriver after calling quit()?' messages appearing when the tests are run in threads (@wakaleo)
  • b06c399 Refactored tests (@wakaleo)
  • b184b84 Modifying screenshot code to work better with Windows (see #69) (@wakaleo)
  • b29b7cc feature: Added support for a waitUntilClickable() method on web elements (@wakaleo)
  • b3340e5 Integrated better support for JBehave (@wakaleo)
  • b3d38fb test:Made a unit test more readable (@wakaleo)
  • b42d58b Fine-tuning the reports (@wakaleo)
  • b497a1d Implemented the timeoutInSeconds attribute on the FindBy annotation. (@wakaleo)
  • b4fbf00 Fixed a bug that caused the screenshots to not always be taken correctly. (@wakaleo)
  • b52b55a Now you can use the -Dserenity.dry.run=true option to skip step executions - useful when testing JBehave or Cucumber step definitions (@wakaleo)
  • b55c8cd feat: Distinguish between element-level timing and "wait-for"-style timing. (@wakaleo)
  • b5732dc Let the bintray keys be defined by the build server (@wakaleo)
  • b810e49 Improved the consistency of requirements reporting for JUnit tests. (@wakaleo)
  • b94933d Move JUnit runners to serenity_bdd package (@mikezx6r)
  • ba4153d Improved automatic detection of file-system requirements hierarchies. (@wakaleo)
  • bc0e078 Added more info to the README file (@wakaleo)
  • bdc3c68 Serenity now generates JUnit-compatible XML reports. (@wakaleo)
  • be15eb4 Move Serenity to new package (@mikezx6r)
  • bf01941 Refactoring multiple select code (@wakaleo)
  • c0a1aa0 Moved the ant plugin over to the new Serenity namespace (@wakaleo)
  • c12c6dd Updated to Selenium 2.44.0 (@wakaleo)
  • c165910 feat: added the possiblity to wait for a CSS or XPath expression from a chained expression. (@wakaleo)
  • c191b5a Added test data for a sample pending report (@wakaleo)
  • c31cb4f Improvements to the reports (@wakaleo)
  • c365291 Updated release notest (@wakaleo)
  • c8ab82b General refactoring (@wakaleo)
  • c8fd3b9 Added bootstrap tabs (@wakaleo)
  • c9f9505 Upgrade javassist version to match transitive dep. #16 (@jeffjensen)
  • cca6cd0 Fix for setting up the remote webdriver capability: webdriver.remote.browser.version (@eskape)
  • cd09406 Added test data for a sample pending report (@wakaleo)
  • cd9d786 Fixed an issue in the reports where pending test results were not being accurately reported in the pie charts. (@wakaleo)
  • ceb0c1d Upgrade htmlunit to Selenium's dep version. #16 (@jeffjensen)
  • cfaae5a rename serenity_bdd to serenitybdd (@mikezx6r)
  • d054c41 Fixed issue with uploading files from the Windows file system. (@wakaleo)
  • d0d500c Attempt to fix #69 (@wakaleo)
  • d21e03e Standardized the Groovy version used throughout the build to 2.3.6 (@wakaleo)
  • d296863 Support for detection of feature file directories. (@wakaleo)
  • d2a2018 Update WhenLoadingTestDataFromACSVFile.java (@x-hovo-x)
  • d377729 Performance improvements (@wakaleo)
  • d4404c1 Fixed #65 - temporary screenshots not deleted (@wakaleo)
  • d5511b6 Cater for rare cases where the driver returns null when an element is not found (@wakaleo)
  • d5dfc1e Fixed an issue that prevented screenshots from being taken correctly in Cucumber scenarios (@wakaleo)
  • d5f35b9 Switched back to JUnit 4.11 due to API incompatibilities with build tools (@wakaleo)
  • d7f4cd3 fix: Fixed an issue in which tests were slowed down after a failing step because Serenity continued to try to take screenshots (@wakaleo)
  • d84aeed [rename] Create Serenity namespaced class and move some associated test classes (@mikezx6r)
  • d8ccfda Implemented the timeoutInSeconds attribute on the FindBy annotation. (@wakaleo)
  • d9a768a Release notes are now triggered manually before the release (@wakaleo)
  • da5c2b7 Fixed an issue where the tests hang if you call Javascript after a failing step. (@wakaleo)
  • daacd77 feat: Custom build properties are reported in a more human-readable way in the build info screen. (@wakaleo)
  • dac9fea Resolved dependency conflict (@wakaleo)
  • dbddf6d test: Temporarily disabling a test that doesn't work on the build server pending further investigation (@wakaleo)
  • df893d2 Update CSVTestDataSource.java (@x-hovo-x)
  • e0a96d7 Fix scm url's (@mikezx6r)
  • e1956cf Enable selection of Mac Os version on SauceLabs
  • e20146d test:Updated some unit tests (@wakaleo)
  • e38147c Moved the tests in serenity-junit that depended on serenity-spring, into serenity-spring, so serenity-junit no longer depends on serenity-spring.
  • e3ce499 Simplified dependencies a little (@wakaleo)
  • e5a13c7 SmartAnnotation needs platform for Appium annotations to work (@schmurgon)
  • e5d04ef feat: Added a total time in the test results report. (@wakaleo)
  • e7235f7 Refactored wait logic to use distinct values for implicit waits and wait-for waits. (@wakaleo)
  • e78dd2c Added support for displaying Saucelabs configuration in the build info screen. (@wakaleo)
  • e7ae87e Fix problem with uploading file on Windows. Changed creation of file path (if file in classpath) (@Tyson1986)
  • e84ac40 Porting changes from thucydides appium-driver-support (@schmurgon)
  • e8c1a87 Updated to Selenium 2.45.0 (@wakaleo)
  • eb4608f Removed some code that used the JDK 8 libraries (@wakaleo)
  • ebb8471 Refactoring some old multi-select code (@wakaleo)
  • ed62753 [namespace] Move Find annotations to serenity_bdd namespace (@mikezx6r)
  • eed9a7c Refactoring tests (@wakaleo)
  • ef5aebc Fixed a bug in the JUnit parameterized reports (@wakaleo)
  • f07879c Refactored some tests (@wakaleo)
  • f0952b4 Renamed 'core' to 'serenity-core' (@wakaleo)
  • f1ebd7a Fixed #49 - sysinfo for build report doesn't support values with spaces (@wakaleo)
  • f2322d4 Minor fix to work around an incompatiblity with IBM JDB 1.7 (@wakaleo)
  • f4a7542 Update reports to use new libraries (@bmwsedee)
  • f4ccaf8 Fixed a bug that prevented the proper use of commands like 'webdriver.manage().window().setSize(new Dimension(1600, 1200));' (@wakaleo)
  • f9d713e style: fix typo in logging (@mikezx6r)
  • f9d9969 Made the log messages for each step include the calling class and method. (@wakaleo)
  • faabd32 Refactoring and improving the JUnit test reports (@wakaleo)
  • fb614fb Fixed some timout issues (@wakaleo)
  • fe1ab3e Added a page to the reports containing system and configuration properties and browser capabilities for a given test run. (@wakaleo)
  • fe1c3c5 Added the Serenity utility class, which exposes and delegates to methods of the legacy Thucydides class. (@wakaleo)
  • fe952b9 Fixed an issue that had broken the async timeout behavior in the setScriptTimeout() method (@wakaleo)