NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #21 most downloaded on pub.dev
The user facing API for structuring Dart tests and checking expectations.
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
8 years old
71 releases · first in 2018
Allow the vmAsan , vmMsan , and vmTsan runtimes to use the native CLI compiler.
vmAsan, vmMsan, and vmTsan runtimes to use the native CLITestFailure from package:test_api/scaffolding.dart.Add Compiler.cli (the native CLI compiler).
Compiler.cli (the native CLI compiler).flutter_test.One column per quarter.
Allow analyzer major version 13.
analyzer major version 13.Add vmAsan , vmMsan and vmTsan runtimes.
vmAsan, vmMsan and vmTsan runtimes.body callback argument to group to void fromdynamic. This may surface cases where the group callback was erroneouslyanalyzer: '>=8.0.0 <13.0.0'Fix missing locations on tests skipped due to the use of solo.
solo.Allow analyzer major version 10.
analyzer major version 10.Add a zone function available from the test suite main that allows creating channels to the test runner.
main that allows creating
channels to the test runner.analyzer major version 9.Expand pub constraint to allow the latest analyzer.
analyzer.Fix an assertion failure when using setUpAll or tearDownAll and running with asserts enabled.
setUpAll or tearDownAll and running
with asserts enabled.test() and group() functions now take an optional TestLocation that will be used as the location of the test in JSON reporters instead of being parsed
test() and group() functions now take an optional TestLocation that will
be used as the location of the test in JSON reporters instead of being parsed
from the call stack.Allow analyzer: '>=6.0.0 <8.0.0'
analyzer: '>=6.0.0 <8.0.0'Increase SDK constraint to ^3.4.0.
Update min SDK constraint to 3.2.0.
Added `@doNotSubmit` to test(solo: ...) and group(solo: ...). In practice, this means that code that was relying on ignoring deprecation warnings and…
@doNotSubmit to test(solo: ...) and group(solo: ...). In
practice, this means that code that was relying on ignoring deprecation
warnings and using solo or group with a skip parameter will now fail if
dart analyze --fatal-infos (or similar) is enabled.Deprecate Runtime.internetExplorer.
Runtime.internetExplorer.dart2wasm as a supported compiler for the chrome runtime.experimentalChromeWasm runtime.Runtime.isJS and Runtime.isWasm, as this is now
based on the compiler and not the runtime.Drop support for null unsafe Dart, bump SDK constraint to 3.0.0.
3.0.0.final. These classes were never intended to
be extended or implemented. Metadata, PlatformSelector, RemoteListener,
Runtime, StackTraceFormatter, SuitePlatform, RemoteException,
TestHandle, OutstandingWork, OutsideTestException, OnPlatform,
Retry, Skip, Tags, TestOn, Timeout.interface: StackTraceMapper.Compiler class into an enum.Fake a mixin class.Remove the package:test_api/expect.dart' library. testwill export frompackage:matcher` directly.
package:test_api/expect.dart' library. testwill export frompackage:matcher` directly.Remove deprecation for the scaffolding.dart and backend.dart libraries.
scaffolding.dart and backend.dart libraries.registerException from the scaffolding.dart library.Handle a missing 'compiler' value when running a test compiled against a newer test_api than the runner back end is using. The expectation was that th
'compiler' value when running a test compiled against a
newer test_api than the runner back end is using. The expectation was that
the json protocol is only used across packages compatible with the same major
version of the test_api package, but flutter test does not check the
version of packages in the pub solve for user test code.Add Compiler class, exposed through backend.dart.
Compiler class, exposed through backend.dart.compiler field to SuitePlatform. This will become required in the next
major release.defaultCompiler and supportedCompilers fields
to Runtime.package:test_api/hooks_testing.dart library for writing tests against
code that uses package:test_api/hooks.dart.ErrorFormatter, expectAsync, throws, and Throws
from package:test_api/test_api.dart.Don't run tearDown until the test body and outstanding work is complete, even if the test has already failed.
tearDown until the test body and outstanding work is complete,
even if the test has already failed.Deprecate throwsNullThrownError, use throwsA(isA ()) instead. The implementation has been changed to ease migrations.
throwsNullThrownError, use throwsA(isA<TypeError>()) instead.
The implementation has been changed to ease migrations.throwsCyclicInitializationError and replace the implementation
with Throws(TypeMatcher<Error>()). The specific exception no longer exists
and there is no guarantee about what type of error will be thrown.Add the experimental-chrome-wasm runtime. This is very unstable and will eventually be deleted, to be replaced by a --compiler flag. See https://githu
experimental-chrome-wasm runtime. This is very unstable and will
eventually be deleted, to be replaced by a --compiler flag. See
https://github.com/dart-lang/test/issues/1776 for more information on future
plansisWasm field to Runtime (defaults to false).Expand the pubspec description.
package:matcher version 0.12.13.Support the latest package:analyzer.
package:analyzer.Fix printOnFailure output to be associated with the correct test.
printOnFailure output to be associated with the correct test.- Internal cleanup.
Support the latest version of package:matcher.
package:matcher.Add Target to restrict TestOn annotation to library level.
Target to restrict TestOn annotation to library level.Add ignoreTimeouts option to Suite, which disables all timeouts for all tests in that suite.
ignoreTimeouts option to Suite, which disables all timeouts for all
tests in that suite.TestFailure implements Exception for compatibility with only_throw_exceptions.
TestFailure implements Exception for compatibility with
only_throw_exceptions.Remove logging about enabling the chain-stack-traces flag from the invoker.
Give a better exception when using markTestSkipped outside of a test.
markTestSkipped outside of a test.Add defaulting for older test backends that don't pass a configuration for the allow_duplicate_test_names parameter to the remote listener.
allow_duplicate_test_names parameter to the remote listener.Allow disabling duplicate test or group names in the Declarer.
Declarer.Use the latest package:matcher.
package:matcher.Update analyzer constraint to >=1.5.0 <3.0.0.
analyzer constraint to >=1.5.0 <3.0.0.Give a better error when printOnFailure is called from outside a test zone.
printOnFailure is called from outside a test
zone.Add libraries scaffolding.dart, and expect.dart to allow importing as subset of the normal surface area.
scaffolding.dart, and expect.dart to allow importing as
subset of the normal surface area.hooks.dart to allow writing custom expectation frameworks
which integrate with the test runner.throwsA and make top-level throws... matchers refer to it.expectAsync function type checks.RemoteException, RemoteListener, StackTraceFormatter, and
StackTraceMapper to backend.dart.Runtime.phantomJSbeforeLoad
callback of RemoteListener.start. This is now used in place of using zones
to communicate the value.Breaking TestException.message is now nullable.
TestException.message is now nullable.
null messages in remote exceptions.Fix some strong null safety mode errors in the original migration.
Stable release for null safety.
Expand upper bound constraints for some null safe migrated packages.
Fix spawnHybridUri to respect language versioning of the spawned uri.
spawnHybridUri to respect language versioning of the spawned uri.Update SDK constraints to >=2.12.0-0 <3.0.0 based on beta release guidelines.
>=2.12.0-0 <3.0.0 based on beta release
guidelines.Allow prerelease versions of the 2.12 sdk.
Add capability to filter to a single exact test name in Declarer.
Declarer.markTestSkipped API.Allow 2.10 stable and 2.11.0-dev SDKs.
2.10 stable and 2.11.0-dev SDKs.Breaking Change: GroupEntry.name is no longer nullable, the root group now has the empty string as its name.
GroupEntry.name is no longer nullable, the root
group now has the empty string as its name.Fake class, available through package:test_api/fake.dart. This
was previously part of the Mockito package, but with null safety it is useful
enough that we decided to make it available through package:test. In a
future release it will be made available directly through
package:test_api/test_api.dart (and hence through
package:test_core/test_core.dart and package:test/test.dart).Update to matcher version 0.12.9.
matcher version 0.12.9.Fix spawnHybridUri to respect language versioning of the spawned uri.
spawnHybridUri to respect language versioning of the spawned uri.Add languageVersionComment on the MetaData class. This should only be present for test suites.
languageVersionComment on the MetaData class. This should only be
present for test suites.Deprecate LiveTestController.liveTest, the LiveTestController instance now implements LiveTest and can be used directly.
LiveTestController.liveTest, the LiveTestController instance now
implements LiveTest and can be used directly.Cancel any StreamQueue that is created as a part of a stream matcher once it is done matching.
close() method on that controller would hang.tearDown callback following a failing test case.Bump minimum SDK to 2.4.0 for safer usage of for-loop elements.
2.4.0 for safer usage of for-loop elements.Work around a bug in the 2.3.0 SDK by avoiding for-loop elements at the top level.
2.3.0 SDK by avoiding for-loop elements at the top
level.Link to docs on setting timeout when a test times out with the default duration.
package:pedantic.Extend the timeout for synthetic tests, e.g. tearDownAll.
tearDownAll.Update to latest package:matcher. Improves output for instances of private classes.
package:matcher. Improves output for instances of private
classes.Treat non-solo tests as skipped so they are properly reported.
Your coding agent can read these notes before it upgrades. Set up the MCP server →