NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #32 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
Deprecate PhantomJS and provide warning when used. Support for PhantomJS will be removed in version 2.0.0.
2.4.0 for safer usage of for-loop elements.PhantomJS and provide warning when used. Support for PhantomJS
will be removed in version 2.0.0.README.md for usage
details.Allow test_api 0.2.13 to work around a bug in the SDK version 2.3.0.
test_api 0.2.13 to work around a bug in the SDK version 2.3.0.One column per quarter.
Add file_reporters configuration option and --file-reporter CLI option to allow specifying a separate reporter that writes to a file instead of stdout
file_reporters configuration option and --file-reporter CLI option to
allow specifying a separate reporter that writes to a file instead of stdout.Add customHtmlTemplateFile configuration option to allow sharing an html template between tests
customHtmlTemplateFile configuration option to allow sharing an
html template between testspackage:test_core.package:test_api.Nothing published for this version
Extend the timeout for synthetic tests, e.g. tearDownAll.
tearDownAll.package:test_core.package:test_api.Depend on the latest package:test_core.
package:test_core.package:analyzer.package:matcher. Improves output for instances of private
classes.Depend on the latest package:test_api and package:test_core.
package:test_api and package:test_core.solo tests that are not run will now be reported as skipped.* Depend on latest test_core.
test_core.Implement code coverage collection for VM based tests
Expose the previously hidden sharding arguments
--total-shards specifies how many shards the suite should
be split into--shard-index specifies which shard should be runDepend on the latest test_core and test_api.
test_core and test_api.Depend on the latest test_core.
test_core.Add --disable-dev-shm-usage to the default Chrome flags.
--disable-dev-shm-usage to the default Chrome flags.Depend on the latest test_core and test_api.
test_core and test_api.* Allow analyzer version 0.38.x.
analyzer version 0.38.x.Pass --server-mode to dart2js instead of --categories=Server to fix a warning about the flag deprecation.
--server-mode to dart2js instead of --categories=Server to fix a
warning about the flag deprecation.pub_semver.Utf8Decoder and the node platform.Depend on the latest test_core.
test_core.package:analyzer.Don't swallow exceptions from callbacks in expectAsync*.
expectAsync*.Depend on latest package:test_core.
package:test_core.
Avoid dart:isolate imports on code loaded in tests.
dart:isolate imports on code loaded in tests.Allow stream_channel version 2.0.0.
stream_channel version 2.0.0.Add isA() to create TypeMatcher instances in a more fluent way.
analyzer version 0.36.x.isA() to create TypeMatcher instances in a more fluent way.isCastError.greaterThan now compares with the >
operator rather not < and not =. This could cause tests which relied on
this bug to start failing.* Allow analyzer version 0.35.x.
analyzer version 0.35.x.Depend on latest test_core and test_api.
>=2.1.0.test_core and test_api.Nothing published for this version
Depend on latest test_core and test_api.
test_core and test_api.Depend on package:test_core for core functionality.
package:test_core for core functionality.Depend on package:test_api for core functionality.
package:test_api for core functionality.Allow remote_listener to be closed and sent an event on close.
Add conditional imports so that dart:io is not imported from the main test.dart entrypoint unless it is available.
dart:io is not imported from the main
test.dart entrypoint unless it is available.const.Widen the constraints on the analyzer package.
Handle parsing annotations which omit const on collection literals.
const on collection literals.root_line, root_column, and root_url in the
JSON reported may not be populated correctly on Windows.When using --precompiled, the test runner now allows symlinks to reach outside the precompiled directory. This allows more efficient creation of preco
--precompiled, the test runner now allows symlinks to reach
outside the precompiled directory. This allows more efficient creation of
precompiled directories (using symlinks instead of copies).<3.0.0.Added support for using precompiled kernel files when running vm tests.
--precompiled flag we will now first check for a
<original-test-path>.vm_test.vm.app.dill file, and if present load that
directly in the isolate. Otherwise the <original-test-path>.vm_test.dart
file will be used.No change from 0.12.42. We are simply signalling to users that this is a well supported package and is the preferred way to write Dart tests.
0.12.42. We are simply signalling to users that this is a
well supported package and is the preferred way to write Dart tests.Made the name constructor parameter optional and marked it deprecated. It's redundant to the type parameter.
Add support for solo test and group. When the argument is true only tests
and groups marked as solo will be run. It is still recommended that users
instead filter their tests by using the runner argument -n.
Updated exported package:matcher to 0.12.3 which includes these updates:
Many improvements to TypeMatcher
Can now be used directly as const TypeMatcher<MyType>().
Added a type parameter to specify the target Type.
name constructor parameter optional and marked it deprecated.
It's redundant to the type parameter.Migrated all isType matchers to TypeMatcher.
Added a having function that allows chained validations of specific
features of the target type.
/// Validates that the object is a [RangeError] with a message containing
/// the string 'details' and `start` and `end` properties that are `null`.
final _rangeMatcher = isRangeError
.having((e) => e.message, 'message', contains('details'))
.having((e) => e.start, 'start', isNull)
.having((e) => e.end, 'end', isNull);
Deprecated the isInstanceOf class. Use TypeMatcher instead.
Improved the output of Matcher instances that fail due to type errors.
Add support for debugging VM tests.
Added some new optional fields to the json reporter, root_line, root_column, and root_url. These will be present if url is not the same as the suite u
root_line,
root_column, and root_url. These will be present if url is not the same
as the suite url, and will represent the location in the original test suite
from which the call to test originated.Change the default reporter and color defaults to be based on stdout.supportsAnsiEscapes instead of based on platform (previously both were disabled o
stdout.supportsAnsiEscapes instead of based on platform (previously both
were disabled on windows).Fix several Dart 2 runtime type errors.
Fix more Dart 2 runtime type errors.
Fix Dart 2 runtime errors around communicating with browsers.
Give neverCalled a type that works in Dart 2 semantics.
neverCalled a type that works in Dart 2 semantics.package:analyzer 0.32.0.Removed the transformer, and the pub_serve.dart entrypoint. This is not being treated as a breaking change because the minimum sdk constraint now poin…
pub_serve.dart entrypoint. This is not
being treated as a breaking change because the minimum sdk constraint now
points to an sdk which does not support pub serve or barback any more anyways.barback.Expose the test bootstrapping methods, so that build systems can precompile tests without relying on internal apis.
Dropped support for Dart 1. Going forward only Dart 2 will be supported.
dartium and content-shell platforms since those are
removed from the Dart 2 SDK.--precompiled node tests in subdirectories.The --precompiled flag is now supported for the vm platform and the node platform.
--precompiled flag is now supported for the vm platform and the node
platform.--precompiled flag now serves all sources directly
from the precompiled directory, and will never attempt to do its own
compilation.Pass --categories=Server to dart2js when compiling tests for Node.js. This tells it that dart:html is unavailable.
Pass --categories=Server to dart2js when compiling tests for Node.js. This
tells it that dart:html is unavailable.
Don't crash when attempting to format stack traces when running via
dart path/to/test.dart.
Fix a bug that broke content shell on Dart 1.24.
Work around an SDK bug that caused timeouts in asynchronous code.
Add an include configuration field which specifies the path to another configuration file whose configuration should be used.
Add an include configuration field which specifies the path to another
configuration file whose configuration should be used.
Add a google platform selector variable that's only true on Google's
internal infrastructure.
Add a headless configuration option for Chrome.
Add a headless configuration option for Chrome.
Re-enable headless mode for Chrome by default.
Don't hang when a Node.js test fails to compile.
* Internal changes.
Avoid loading test suites whose tags are excluded by --excluded-tags.
--excluded-tags.Fix a memory leak when loading browser tests.
Stop running Chrome in headless mode temporarily to work around a browser bug.
Platform selectors for operating systems now work for Node.js tests ([#742][]).
Platform selectors for operating systems now work for Node.js tests (#742).
fail() is now typed to return Null, so it can be used in the same places
as a raw throw.
Run Chrome in headless mode unless debugging is enabled.
Fix strong mode runtime cast failures.
Node.js tests can now import modules from a top-level node_modules directory, if one exists.
Node.js tests can now import modules from a top-level node_modules
directory, if one exists.
Raw console.log() calls no longer crash Node.js tests.
When a browser crashes, include its standard output in the error message.
Your coding agent can read these notes before it upgrades. Set up the MCP server →