release_notes/3.0.md
Jasmine 3.0 is a major release of Jasmine, and as such includes some breaking changes in addition to various new features.
There is also a 2.99 release of Jasmine that will present deprecation warnings for suites that will encounter different behavior in 3.0.
Replace old "catch exceptions" logic with proper fail fast with error reporting
Detect an Error passed to done and add an expectation failure
Unify status for xdescribe and xit
excluded instead of disabledSuite level errors all report the same way (on suiteDone)
Refactor QueueRunner and remove references to functions that Jasmine is done with
expect(null).toEqual(jasmine.any(Object)) no longer passes
Default to running tests in random order
The identity of a Jasmnine Spy is now a property and no longer a method
Additionally, Jasmine 3.0 drops support for older browsers and environments. Notably:
Remove node modules from python wheel, and update languages
Allow reporter callbacks to be asynchronous
Allow adding custom spy strategies
Add the ability to specify the strategy to use for a spy based on which parameters are passed
Added links to re-run the suites containing a failing spec
Added a toHaveClass matcher
More informative pretty-printing of DOM elements
Allow jasmine-npm to handle its own load errors
Treat random= as a no-op rather than disabling randomization
Use prototype for spy strategy for better memory management
Remove console.js altogether
Add safari 10 and update readme to include edge
Determine overall status in core, not reporters
Filter Jasmine frames from stack traces
Treat afterAll errors at any level as failures
Improved reporting of load errors and afterAll errors
Report loading errors as loading errors, not afterAll errors
HTML reporter reports overall failure if there are any global errors
Fail if error events (e.g. syntax errors) occur during loading
Allow use of a predicate function to validate thrown exceptions
Check truthiness of toThrowError args, not arg count
_Release Notes generated with Anchorman