If a future matched against the completes
or completion()
matcher throws an error, that error is printed directly rather than being wrapped in a string. This allows such errors to be captured using the Zone API and improves formatting.
Improve support for Polymer tests. This fixes a flaky time-out error and adds support for Dartifying JavaScript stack traces when running Polymer tests via pub serve
.
In order to be more extensible, all exception handling within tests now uses the Zone API.
Add a heartbeat to reset a test's timeout whenever the test interacts with the test infrastructure.
expect()
, expectAsync()
, and expectAsyncUntil()
throw more useful errors if called outside a test body.
Convert JavaScript stack traces into Dart stack traces using source maps. This can be disabled with the new --js-trace
flag.
Improve the browser test suite timeout logic to avoid timeouts when running many browser suites at once.
--verbose-trace
flag to include core library frames in stack traces.0.12.0
adds support for a test runner, which can be run via pub run test:test
(or pub run test
in Dart 1.10). By default it runs all files recursively in the test/
directory that end in _test.dart
and aren't in a packages/
directory.
The test runner supports running tests on the Dart VM and many different browsers. Test files can use the @TestOn
annotation to declare which platforms they support. For more information on this and many more new features, see the README.
As part of moving to a runner-based model, most test configuration is moving out of the test file and into the runner. As such, many ancillary APIs have been removed. These APIs include skip_
and solo_
functions, Configuration
and all its subclasses, TestCase
, TestFunction
, testConfiguration
, formatStacks
, filterStacks
, groupSep
, logMessage
, testCases
, BREATH_INTERVAL
, currentTestCase
, PASS
, FAIL
, ERROR
, filterTests
, runTests
, ensureInitialized
, setSoloTest
, enableTest
, disableTest
, and withTestEnvironment
.
FailureHandler
, DefaultFailureHandler
, configureExpectFailureHandler
, and getOrCreateExpectFailureHandler
which used to be exported from the matcher
package have also been removed. They existed to enable integration between test
and matcher
that has been streamlined.
A number of APIs from matcher
have been into test
, including: completes
, completion
, ErrorFormatter
, expect
,fail
, prints
, TestFailure
, Throws
, and all of the throws
methods. Some of these have changed slightly:
expect
no longer has a named failureHandler
argument.
expect
added an optional formatter
argument.
completion
argument id
renamed to description
.
##0.11.5+1
##0.11.5
matcher
.##0.11.4
matcher
.##0.11.3
##0.11.2
##0.11.1+1
##0.11.1
reason
named argument to expectAsync
and expectAsyncUntil
, which has the same definition as expect
's reason
argument.##0.11.0+6
##0.11.0+5
##0.11.0+4
##0.11.0+3
matcher
version.##0.11.0+2
##0.11.0+1
stack_trace
.##0.11.0
expectAsync0
, expectAsync1
, and expectAsync2
- use expectAsync
insteadexpectAsyncUntil0
, expectAsyncUntil1
, and expectAsyncUntil2
- use expectAsyncUntil
insteadguardAsync
- no longer neededprotectAsync0
, protectAsync1
, and protectAsync2
- no longer neededmatcher.dart
and mirror_matchers.dart
have been removed. They are now in the matcher
package.mock.dart
has been removed. It is now in the mock
package.##0.10.1+2
mock
.##0.10.1+1
##0.10.1
matcher.dart
and mirror_matchers.dart
are now in the matcher
package.mock.dart
is now in the mock
package.equals
now allows a nested matcher as an expected list element or map value when doing deep matching.expectAsync
and expectAsyncUntil
now support up to 6 positional arguments and correctly handle functions with optional positional arguments with default values.##0.10.0
Zone
. This ensures that any exceptions that occur is async operations are reported back to the source test case.guardAsync
, protectAsync0
, protectAsync1
, and protectAsync2
Zone
addresses the need for these methods.expectAsync
replaces the now deprecated expectAsync0
, expectAsync1
and expectAsync2
expectAsyncUntil
replaces the now deprecated expectAsyncUntil0
, expectAsyncUntil1
and expectAsyncUntil2
TestCase
:setUp
, tearDown
, testFunction
enabled
is now get-onlypass
, fail
, error
interactive_html_config.dart
has been removed.runTests
, tearDown
, setUp
, test
, group
, solo_test
, and solo_group
now throw a StateError
if called while tests are running.rerunTests
has been removed.