expectAsync
and expectAsyncUntil
, since they currently can't be made to work cleanly in strong mode. They are replaced with separate methods for each number of callback arguments:expectAsync0
, expectAsync1
, ... expectAsync6
, andexpectAsyncUntil0
, expectAsyncUntil1
, ... expectAsyncUntil6
.analyzer
.on_platform
was defined in a config file.--help
documentation.analyzer
.nestingMiddleware
to lib/src/util/path_handler.dart
to enable a cleaner separation between test-runner files and test writing files.packages/
directory.Add a skip
parameter to expect()
. Marking a single expect as skipped will cause the test itself to be marked as skipped.
Add a --run-skipped
parameter and run_skipped
configuration field that cause tests to be run even if they're marked as skipped.
yaml
.Declare support for version 1.18 of the Dart SDK.
Use the latest collection
package.
collection
package.Add support for a global configuration file. On Windows, this file defaults to %LOCALAPPDATA%\DartTest.yaml
. On Unix, it defaults to ~/.dart_test.yaml
. It can also be explicitly set using the DART_TEST_CONFIG
environment variable. See the configuration documentation for details.
The --name
and --plain-name
arguments may be passed more than once, and may be passed together. A test must match all name constraints in order to be run.
Add names
and plain_names
fields to the package configuration file. These allow presets to control which tests are run based on their names.
Add include_tags
and exclude_tags
fields to the package configuration file. These allow presets to control which tests are run based on their tags.
Add a pause_after_load
field to the package configuration file. This allows presets to enable debugging mode.
Add support for test presets. These are defined using the presets
field in the package configuration file. They can be selected by passing --preset
or -P
, or by using the add_presets
field in the package configuration file.
Add an on_os
field to the package configuration file that allows users to select different configuration for different operating systems.
Add an on_platform
field to the package configuration file that allows users to configure all tests differently depending on which platform they run on.
Add an ios
platform selector variable. This variable will only be true when the test
executable itself is running on iOS, not when it's running browser tests on an iOS browser.
shelf_web_socket
0.2.0.Add a tags
field to the package configuration file that allows users to provide configuration for specific tags.
The --tags
and --exclude-tags
command-line flags now allow boolean selector syntax. For example, you can now pass --tags "(chrome || firefox) && !slow"
to select quick Chrome or Firefox tests.
Re-add help output separators.
Tighten the constraint on args
.
args
constraint for the features it used; this version will help ensure that users who can't use args
0.13.1 will get a working version of test
.dart_test.yaml
.Add SuiteEvent
to the JSON reporter, which reports data about the suites in which tests are run.
Add AllSuitesEvent
to the JSON reporter, which reports the total number of suites that will be run.
Add Group.testCount
to the JSON reporter, which reports the total number of tests in each group.
Organize the --help
output into sections.
Add a --timeout
flag.
Add the ability to re-run tests while debugging. When the browser is paused at a breakpoint, the test runner will open an interactive console on the command line that can be used to restart the test.
Add support for passing any object as a description to test()
and group()
. These objects will be converted to strings.
Add the ability to tag tests. Tests with specific tags may be run by passing the --tags
command-line argument, or excluded by passing the --exclude-tags
parameter.
This feature is not yet complete. For now, tags are only intended to be added temporarily to enable use-cases like focusing on a specific test or group. Further development can be followed on the issue tracker.
Wait for a test's tear-down logic to run, even if it times out.
http_parser
2.0.0.http_multi_server
2.0.0.Add a machine-readable JSON reporter. For details, see the protocol documentation.
Skipped groups now properly print skip messages.
setUpAll()
and tearDownAll()
.Add setUpAll()
and tearDownAll()
methods that run callbacks before and after all tests in a group or suite. Note that these methods are for special cases and should be avoided—they make it very easy to accidentally introduce dependencies between tests. Use setUp()
and tearDown()
instead if possible.
Allow setUp()
and tearDown()
to be called multiple times within the same group.
When a tearDown()
callback runs after a signal has been caught, it can now schedule out-of-band asynchronous callbacks normally rather than having them throw exceptions.
Don't show package warnings when compiling tests with dart2js. This was accidentally enabled in 0.12.2, but was never intended.
tearDown()
callback throws an error, outer tearDown()
callbacks are still executed.pub serve
on Dartium or content shell.http_parser
1.0.0.1.13.0
.--pub-serve
.1.11.0
and shelf
>= 0.6.0
, allowing test
to remove various hacks and workarounds.Add a --pause-after-load
flag that pauses the test runner after each suite is loaded so that breakpoints and other debugging annotations can be added. Currently this is only supported on browsers.
Add a Timeout.none
value indicating that a test should never time out.
The dart-vm
platform selector variable is now true
for Dartium and content shell.
The compact reporter no longer prints status lines that only update the clock if they would get in the way of messages or errors from a test.
The expanded reporter no longer double-prints the descriptions of skipped tests.
analyzer
to include 0.26.0
.collection
package.This version was unpublished due to issue 287.
Properly report load errors caused by failing to start browsers.
Substantially increase browser timeouts. These timeouts are the cause of a lot of flakiness, and now that they don‘t block test running there’s less harm in making them longer.
This version was unpublished due to issue 287.
This version was unpublished due to issue 287.
The compact reporter will update the timer every second, rather than only updating it occasionally.
The compact reporter will now print the full, untruncated test name before any errors or prints emitted by a test.
The expanded reporter will now always print the full, untruncated test name.
This version was unpublished due to issue 287.
This version was unpublished due to issue 287.
Improve the display of syntax errors in VM tests.
Work around a Firefox bug. Computed styles now work in tests on Firefox.
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.6+4
vm_config.dart
and html_config.dart
libraries.##0.11.6+3
##0.11.6+2
##0.11.6+1
##0.11.6
Merge in the last 0.11.x
release of matcher
to allow projects to use both test
and unittest
without conflicts.
Fix running individual tests with HtmlIndividualConfiguration
when the test name contains URI-escaped values and is provided with the group
query parameter.
##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.