NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #30 most downloaded on pub.dev
A full featured library for writing and running Dart tests across platforms.
Last release 1 months ago
02 Sep 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
288 releases · first in 2015
Nothing published for this version
Increase the timeout for loading tests to 12 minutes.
When addTearDown() is called within a call to setUpAll(), it runs its callback after *all* tests instead of running it after the setUpAll() callback.
When addTearDown() is called within a call to setUpAll(), it runs its
callback after all tests instead of running it after the setUpAll()
callback.
When running in an interactive terminal, the test runner now prints status lines as wide as the terminal and no wider.
One column per quarter.
Fix lower bound on package stack_trace. Now 1.6.0.
stack_trace. Now 1.6.0.The spawnHybridUri() function now allows root-relative URLs, which are interpreted as relative to the root of the package.
spawnHybridUri() function now allows root-relative URLs, which are
interpreted as relative to the root of the package.Add a override_platforms configuration field which allows test platforms' settings (such as browsers' executables) to be overridden by the user.
Add a override_platforms configuration field which allows test platforms'
settings (such as browsers' executables) to be overridden by the user.
Add a define_platforms configuration field which makes it possible to define
new platforms that use the same logic as existing ones but have different
settings.
Widen version constraint on analyzer.
analyzer.Only force exit if FORCE_TEST_EXIT is set in the environment.
FORCE_TEST_EXIT is set in the environment.* Extend deserializeTimeout.
deserializeTimeout.Drain browser process stdout and stdin. This resolves test flakiness, especially in Travis with the Precise image.
stdout and stdin. This resolves test flakiness, especially in Travis
with the Precise image.Expose a way for tests to forward a loadException to the server.
loadException to the server.Small refactoring to make the package compatible with strong-mode compliant Zone API. No user-visible change.
Declare support for async 2.0.0.
async 2.0.0.spawnHybridUri() now interprets relative URIs correctly in browser tests.
spawnHybridUri() now interprets relative URIs correctly in browser tests.Add a node platform for compiling tests to JavaScript and running them on Node.js.
node platform for compiling tests to JavaScript and running them on
Node.js.* Remove unused imports.
Add a fold_stack_frames field for dart_test.yaml. This will allow users to customize which packages' frames are folded.
fold_stack_frames field for dart_test.yaml. This will
allow users to customize which packages' frames are folded.Run tear-down callbacks in the same error zone as the test function. This makes it possible to safely share Futures and Streams between tests and thei
Support args 1.0.0.
Run tear-down callbacks in the same error zone as the test function. This
makes it possible to safely share Futures and Streams between tests and
their tear-downs.
Properly allocate ports when debugging Chrome and Dartium in an IPv6-only environment.
Add a retry option to test() and group() functions, as well as @Retry() annotation for test files and a retry configuration field for dart_test.yaml.
Add a retry option to test() and group() functions, as well
as @Retry() annotation for test files and a retry
configuration field for dart_test.yaml. A test with reties
enabled will be re-run if it fails for a reason other than a
TestFailure.
Add a --no-retry runner flag that disables retries of failing tests.
Fix a "concurrent modification during iteration" error when calling
addTearDown() from within a tear down.
Add a doesNotComplete matcher that asserts that a Future never completes.
Add a doesNotComplete matcher that asserts that a Future never completes.
throwsA() and all related matchers will now match functions that return
Futures that emit exceptions.
Respect onPlatform for groups.
Only print browser load errors once per browser.
Gracefully time out when attempting to deserialize a test suite.
* Refactor for internal tools.
Refactor bootstrapping to simplify the test/pub_serve transformer.
Now support v0.30.0 of pkg/analyzer
Now support v0.30.0 of pkg/analyzer
The test executable now does a "hard exit" when complete to ensure lingering isolates or async code don't block completion. This may affect users trying to use the Dart service protocol or observatory.
Upgrade to package:matcher 0.12.1
Allow exceptions from operator == to bubble up and fail the test instead of treating them as unequal objects.
operator == to bubble up and fail the test instead ofBreaking change: The expect() method no longer returns a Future, since
this broke backwards-compatibility in cases where a void function was
returning an expect() (such as void foo() => expect(...)). Instead, a new
expectLater() function has been added that return a Future that completes
when the matcher has finished running.
The verbose parameter to expect() and the formatFailure() function are
deprecated.
Tighten the dependency on stream_channel to reflect the APIs being used.
Tighten the dependency on stream_channel to reflect the APIs being used.
Use a 1024 x 768 iframe for browser tests.
Print "[E]" after test failures to make them easier to identify visually and via automated search.
--pause-after-load no longer deadlocks with recent versions of Chrome.
--pause-after-load no longer deadlocks with recent versions of Chrome.
Fix Dartified stack traces for JS-compiled tests run through pub serve.
Fixed strong-mode errors and other blockers for compiling with dev_compiler.
dev_compiler.Fixed more blockers for compiling with dev_compiler.
Fixed more blockers for compiling with dev_compiler.
Dartfmt the entire repo.
Note: 0.12.20+5-0.12.20+7 were tagged but not officially published.
Introduce new flag --chain-stack-traces to conditionally chain stack traces.
--chain-stack-traces to conditionally chain stack traces.Deprecate the throws matcher in favor of throwsA().
Added the StreamMatcher class, as well as several built-in stream matchers:
emits(), emitsError(), emitsDone, mayEmit(), mayEmitMultiple(),
emitsAnyOf(), emitsInOrder(), emitsInAnyOrder(), and neverEmits().
expect() now returns a Future for the asynchronous matchers completes,
completion(), throws*(), and prints().
Add a printOnFailure() method for providing debugging information that's
only printed when a test fails.
Automatically configure the term_glyph package to use ASCII
glyphs when the test runner is running on Windows.
Deprecate the throws matcher in favor of throwsA().
Deprecate the Throws class. These matchers should only be constructed via
throwsA().
Make sure asynchronous matchers that can fail synchronously, such as throws*() and prints(), can be used with synchronous matcher operators like isNot
throws*() and prints(), can be used with synchronous matcher operators
like isNot().Nothing published for this version
Add an addTearDown() function, which allows tests to register additional tear-down callbacks as they're running.
Add an addTearDown() function, which allows tests to register additional
tear-down callbacks as they're running.
Add the spawnHybridUri() and spawnHybridCode() functions, which allow
browser tests to run code on the VM.
Fix the new expectAsync functions so that they don't produce analysis errors
when passed callbacks with optional arguments.
Fix the deprecated expectAsync() function. The deprecation caused it to fail to support functions that take arguments.
expectAsync() function. The deprecation caused it to
fail to support functions that take arguments.Nothing published for this version
Deprecate expectAsync and expectAsyncUntil, since they currently can't be made to work cleanly in strong mode. They are replaced with separate methods…
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.Fix a bug where tags couldn't be marked as skipped.
Fix Dartium debugging on Windows.
* Internal changes only.
Allow tools to interact with browser debuggers using the JSON reporter.
Add a skip parameter to expect(). Marking a single expect as skipped will cause the test itself to be marked as skipped.
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.
Declare support for version 1.19 of the Dart SDK.
Support running without a packages/ directory.
packages/ directory.Move nestingMiddleware to lib/src/util/path_handler.dart to enable a cleaner separation between test-runner files and test writing files.
nestingMiddleware to lib/src/util/path_handler.dart to enable a
cleaner separation between test-runner files and test writing files.Widen version constraint on analyzer.
analyzer.* Internal-only change.
Fix a broken link in the --help documentation.
--help documentation.Fix a bug where tags would be dropped when on_platform was defined in a config file.
on_platform was defined in a
config file.Make test suites with thousands of tests load much faster on the VM (and possibly other platforms).
Widen version constraint on analyzer.
analyzer.Throw a better error if a group body is asynchronous.
Make test iframes visible when debugging.
Fix a race condition that could cause the runner to stall for up to three seconds after completing.
Add test and group location information to the JSON reporter.
* Narrow the constraint on yaml.
yaml.Add support for a global configuration file. On Windows, this file defaults to %LOCALAPPDATA%\DartTest.yaml. On Unix, it defaults to ~/.dart_test.yaml
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.
Declare support for version 1.17 of the Dart SDK.
Your coding agent can read these notes before it upgrades. Set up the MCP server →