test
A full featured library for writing and running Dart tests across platforms.
1.31.2
11M downloads/mo
#21 most downloaded on pub.dev
dart-lang/test
What this package is like to depend on
Last release 1 months ago
27 Jun 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 253 of 256 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
287 releases · first in 2015
7 releases in the last 12 months
see the full history below
Release timeline
287 releases · Apr 2015 to Jun 2026
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 60 of 287-
1.31.227 Jun 2026Release notes
Open source →- Add support for running tests as native CLI bundles (vm platform only).
- You can run tests this way with
--compiler cli.
- You can run tests this way with
- Impacts Configuration Support using the OS platform selector to configure
browser tests.
Previously tests loaded for the browser would have an operating system of
"none", now they will have an operating system matching the system the browser
is running on. This allows more specific configuration, such as skipping a
particular browser test on a particular platform. This may impact existing
configuration which relied on the configuration for browser tests being
independent from any OS specific configuration. For instance a wide skip of
all tests with OS'windows'would previously still run browser tests on
windows, but will now skip all tests including browser tests. - Use a DevTools URL instead of a defunct observatory URL.
- Disable throttling in chrome launch arguments.
- Allow package_config
3.x.x. - Require
analyzer: '>=13.0.0 <15.0.0' - Use the compact or failures-only reporters by default for tests run directly
instead of through the test runner.
Release notes
Open source →- Add support for running tests as native CLI bundles (vm platform only).
- You can run tests this way with
--compiler cli.
- You can run tests this way with
- Impacts Configuration Support using the OS platform selector to configure
browser tests.
Previously tests loaded for the browser would have an operating system of
"none", now they will have an operating system matching the system the browser
is running on. This allows more specific configuration, such as skipping a
particular browser test on a particular platform. This may impact existing
configuration which relied on the configuration for browser tests being
independent from any OS specific configuration. For instance a wide skip of
all tests with OS
'windows'would previously still run browser tests on windows, but will now skip all tests including browser tests. - Use a DevTools URL instead of a defunct observatory URL.
- Disable throttling in chrome launch arguments.
- Allow package_config
3.x.x. - Require
analyzer: '>=13.0.0 <15.0.0' - Use the compact or failures-only reporters by default for tests run directly instead of through the test runner.
- Add support for running tests as native CLI bundles (vm platform only).
-
1.31.127 Apr 2026Release notes
Open source →- Ignore an error locating the SDK directory on platforms where the
resolvedExecutableis unexpectedlynull. - Fix a bug where
-c exetests would hang on exit on windows. - Fix a bug where the web test runner would not find custom HTML files when
using the dart2wasm compiler. GithubReporter:- Group contiguous passing and skipped tests into collapsible groups to
reduce log noise in GitHub Actions. - Updated skipped icon to ⏭️.
- Group contiguous passing and skipped tests into collapsible groups to
- Increase SDK constraint to ^3.10.0.
- Allow
analyzerversion13.x.x.
Release notes
Open source →- Ignore an error locating the SDK directory on platforms where the
resolvedExecutableis unexpectedlynull. - Fix a bug where
-c exetests would hang on exit on windows. - Fix a bug where the web test runner would not find custom HTML files when using the dart2wasm compiler.
GithubReporter:- Group contiguous passing and skipped tests into collapsible groups to reduce log noise in GitHub Actions.
- Updated skipped icon to ⏭️.
- Increase SDK constraint to ^3.10.0.
- Allow
analyzerversion13.x.x.
- Ignore an error locating the SDK directory on platforms where the
-
1.31.018 Mar 2026Release notes
Open source →- Print a summary of failed tests at the end of the expanded reporter output.
- Add
vm-asan,vm-msan, andvm-tsanruntimes to run tests on the standalone
Dart VM under Address Sanitizer, Memory Sanitizer or Thread Sanitizer. This is
useful for finding issues when using foreign libraries through dart:ffi, such
as use-after-free, use of initialized memory and data races, or for detecting
data races in Dart code using shared fields. - Change return type on the
bodycallback argument togrouptovoidfrom
dynamic. This may surface cases where the group callback was erroneously
returning an ignored value. - Fix a hang when a test run with
--compiler execrashes. - Require
analyzer: '>=8.0.0 <13.0.0'
Release notes
Open source →- Print a summary of failed tests at the end of the expanded reporter output.
- Add
vm-asan,vm-msan, andvm-tsanruntimes to run tests on the standalone Dart VM under Address Sanitizer, Memory Sanitizer or Thread Sanitizer. This is useful for finding issues when using foreign libraries through dart:ffi, such as use-after-free, use of initialized memory and data races, or for detecting data races in Dart code using shared fields. - Change return type on the
bodycallback argument togrouptovoidfromdynamic. This may surface cases where the group callback was erroneously returning an ignored value. - Fix a hang when a test run with
--compiler execrashes. - Require
analyzer: '>=8.0.0 <13.0.0'
-
1.30.027 Feb 2026Release notes
Open source →- Add a
--suite-load-timeoutargument to allow configuring a timeout for compiling and loading individual test suites. - Remove the default 12 minute timeout to compile and load test suites.
- Bump
test_coreto 0.6.16 - Add comments to the top-level libraries in the package.
- Bump
test_apito 0.7.10 to fix missing locations on tests skipped due to the use ofsolo.
- Add a
-
1.29.007 Jan 2026Release notes
Open source →- Add
--coverage-packageflag, which filters the coverage report to specific packages using RegExps. - Require a function definition named
maindirectly in a test suite and provide a more direct error message than a failing compiler output. - Suppress skip reason messages in the compact and failures-only reporters.
- Allow
analyzermajor version 10.
- Add
-
1.28.021 Nov 2025Release notes
Open source →- Add
isSortedand related matchers for iterables. - Consider
NaNto be equal to itself inequals. - Bump
test_coreto 0.6.14 - Removed unused
jsdependency
- Add
-
1.27.011 Nov 2025Release notes
Open source →- Add
--coverage-pathand--branch-coverageoptions todart test. - Serve dart2wasm source map files.
- Fix Node.js dart2wasm tests on windows.
- Doc edit: clarify in README that a platform selector includes the compiler.
- Allow
analyzermajor version 9. - Require Dart 3.7
- Add
-
1.26.322 Jul 2025 -
1.26.221 May 2025 -
1.26.119 May 2025Release notes
Open source →- Set a debug name for test isolates.
- Fix an assertion failure when using
setUpAllortearDownAlland running with asserts enabled.
-
1.26.012 May 2025Release notes
Open source →test()andgroup()functions now take an optionalTestLocationthat will be used as the location of the test in JSON reporters instead of being parsed from the call stack.
-
1.25.1508 Feb 2025 -
1.25.1419 Dec 2024 -
1.25.1317 Dec 2024 -
1.25.1204 Dec 2024 -
1.25.1103 Dec 2024Release notes
Open source →- Update to be forward compatible with
package:shelf_web_socketversion3.x.
- Update to be forward compatible with
-
1.25.1002 Dec 2024 -
1.25.926 Nov 2024Release notes
Open source →- Allow
analyzer: '>=6.0.0 <8.0.0' - Fix dart2wasm tests on windows.
- Increase SDK constraint to ^3.5.0.
- Support running Node.js tests compiled with dart2wasm.
- Allow
firefoxorfirefox-binexecutable name on macOS.
- Allow
-
1.25.803 Jul 2024 -
1.25.705 Jun 2024 -
1.25.602 Jun 2024Release notes
Open source →- Point API doc links to
package:testcanonical libraries. - Fix testing with
dart2wasm- usedart compile wasminstead of depending on SDK internals - Update min SDK constraint to 3.2.0.
- Point API doc links to
-
1.25.506 May 2024Release notes
Open source →- Update the
package:web_socket_channelversion constraint to allow3.x. - Update the
package:shelf_web_socketversion constraint to allow2.x.
- Update the
-
1.25.417 Apr 2024 -
1.25.309 Apr 2024Release notes
Open source →- Remove outdated StreamMatcher link from README table of contents.
- Document the silent reporter in CLI help output.
- Support enabling experiments with the dart2wasm compiler.
- Added
@doNotSubmittotest(solo: ...)andgroup(solo: ...). In practice, this means that code that was relying on ignoring deprecation warnings and usingsoloorgroupwith askipparameter will now fail ifdart analyze --fatal-infos(or similar) is enabled.
-
1.25.224 Jan 2024Release notes
Open source →- Fix a bug running browser tests with paths containing windows directory separator follow by a character which is an invalid Dart string escape sequence.
-
1.25.111 Jan 2024Release notes
Open source →- Fix a bug where in precompiled mode, html files for tests were no longer created.
- Support the latest version of
package:js. - Document the silent reporter in CLI help output.
-
1.25.013 Dec 2023Release notes
Open source →- Handle paths with leading
/when spawning test isolates. - Add support for the
dart2wasmcompiler in chrome and firefox. - BREAKING: Remove the
experimental-chrome-wasmplatform, you can now use-p chrome -c dart2wasminstead.- Note that this has always been advertised as a change that would happen in a future non-breaking release.
- BREAKING:Dropped support for
--pub-servewhich has long not been tested or supported.- We do not anticipate much if any actual breakage or existing usage of this feature, which is why we are making this change in a non-breaking release.
- If you do require this feature, file an issue and we can look at adding it back.
- BREAKING: Fully remove support for Internet Explorer.
- Fix running of tests defined under
lib/with relative imports to other libraries in the package.
- Handle paths with leading
-
1.24.925 Oct 2023 -
1.24.813 Oct 2023 -
1.24.702 Oct 2023Release notes
Open source →- Simplify the initialization of the per-suite message channel within browser tests. See https://github.com/dart-lang/test/issues/2065
- Add a timeout to browser test suite loads.
- Fix running of browser tests that use deferred loaded libraries.
-
1.24.608 Aug 2023Release notes
Open source →- Fix communication failures between minified test apps and the non-minified host app.
- Add support for discontinuing after the first failing test with
--fail-fast.
-
1.24.531 Jul 2023Release notes
Open source →- Change
compiling <path>toloading <path>message in all cases. Surface the "loading" messages in the situations where previously only the "compiling" message would be used. - Support browser tests where the frame creates the message channel.
- Change
-
1.24.428 Jun 2023Release notes
Open source →- Drop support for null unsafe Dart, bump SDK constraint to
3.0.0. - Make some annotation classes
final:OnPlatform,Retry,Skip,Tags,TestOn,Timeout. - Fix the
root_fields in the JSON reporter when running a test on Windows with an absolute path. - Add support for
SAFARI_EXECUTABLE,FIREFOX_EXECUTABLEandMS_EDGE_EXECUTABLEfor custom browser installations. - Allow the latest analyzer (6.x.x).
- Add
MOZ_AUTOMATION=1environmental variable to Firefox runner, to make launcher process on Windows wait for browser exit.
- Drop support for null unsafe Dart, bump SDK constraint to
-
1.24.316 May 2023 -
1.24.219 Apr 2023Release notes
Open source →- Copy an existing nonce from a script on the test HTML page to the script created by the test runner host javascript. This only impacts environments testing with custom HTML that includes a nonce.
- Support the Microsoft Edge browser (use the
edgeplatform in your test configuration file or-p edgeon the command line).
-
1.24.131 Mar 2023Release notes
Open source →- Handle a missing
'compiler'value when running a test compiled against a newertest_apithan 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 thetest_apipackage, butflutter testdoes not check the version of packages in the pub solve for user test code.
- Handle a missing
-
1.24.023 Mar 2023Release notes
Open source →- Support the
--compilerflag, which can be used to configure which compiler to use.- To specify a compiler by platform, the argument supports platform selectors
through this syntax
[<platform>:]<compiler>. For example the command line argument--compiler vm:sourcewould run all vm tests from source instead of compiling to kernel first. - If no given compiler is compatible for a platform, it will use its default compiler instead.
- To specify a compiler by platform, the argument supports platform selectors
through this syntax
- Add support for running tests as native executables (vm platform only).
- You can run tests this way with
--compiler exe.
- You can run tests this way with
- Support compiler identifiers in platform selectors.
- List the supported compilers for each platform in the usage text.
- Update all reporters to print the compiler along with the platform name when configured to print the platform. Extend the logic for printing platofrm information to do so if any compilers are explicitly configured.
- Deprecate
--use-data-isolate-strategy. It is now an alias for-c vm:sourcewhich is roughly equivalent. If this is breaking for you please file an issue.
- Support the
-
1.23.109 Feb 2023 -
1.23.008 Feb 2023Release notes
Open source →- Avoid empty expandable groups for tests without extra output in Github reporter.
- Add support for CHROME_EXECUTABLE environment variable. This overrides any config file settings.
- Support running tests by absolute file uri.
-
1.22.211 Jan 2023Release notes
Open source →- Don't run
tearDownuntil the test body and outstanding work is complete, even if the test has already failed. - Change URL secrets for browser tests to always be alphanumeric characters.
- Don't run
-
1.22.108 Dec 2022Release notes
Open source →- Add documentation for the
--ignore-timeoutsargument. - Merge command lines args repeating the same test path to run the suite one time with all the test cases across the different arguments.
- Fix VM tests which run after some test has changed the working directory. There are still issues with browser tests after changing directory.
- Deprecate
throwsNullThrownError, usethrowsA(isA<TypeError>())instead. The implementation has been changed to ease migrations. - Deprecate
throwsCyclicInitializationErrorand replace the implementation withThrows(TypeMatcher<Error>()). The specific exception no longer exists and there is no guarantee about what type of error will be thrown.
- Add documentation for the
-
1.22.001 Nov 2022Release notes
Open source →- Fix an issue with the github reporter where tests that fail asynchronously after they've completed would show up as succeeded tests.
- Add the
experimental-chrome-wasmplatform. This is very unstable and will eventually be deleted, to be replaced by a--compilerflag. See https://github.com/dart-lang/test/issues/1776 for more information on future plans.
-
1.21.726 Oct 2022 -
1.21.612 Sep 2022Release notes
Open source →- Require Dart >= 2.18.0
- Fix the coverage usage example in the README.md
- Support the latest
package:test_apiandpackage:test_core.
-
1.21.519 Aug 2022Release notes
Open source →- Fix
printOnFailureoutput to be associated with the correct test. - Migrate all dom interactions to static interop.
- Fix
-
1.21.406 Jul 2022Release notes
Open source →- Make the labels for test loading more readable in the compact and expanded reporters, use gray instead of black.
- Print a command to re-run the failed test after each failure in the compact reporter.
- Fix the package config path used when running pre-compiled vm tests.
-
1.21.322 Jun 2022 -
1.21.215 Jun 2022Release notes
Open source →- Add
Targetto restrictTestOnannotation to library level. - Update the github reporter to output the platform in the test names when multiple platforms are used.
- Fix
spawnHybridUrisupport forpackage:uris.
- Add
-
1.21.121 Apr 2022Release notes
Open source →- Fix a bug loading JS sources with non-utf8 content while parsing coverage information from chrome.
-
1.21.014 Apr 2022Release notes
Open source →- Allow analyzer version
4.x. - Add a
githubreporter option for use with GitHub Actions. - Make the
githubtest reporter the default when we detect we're running on GitHub Actions.
- Allow analyzer version
-
1.20.216 Mar 2022Release notes
Open source →- Drop
dart2js-pathcommand line argument. - Allow loading tests under a path with the directory named
packages. - Add retry for launching browsers. Reduce timeout back to 30 seconds.
- Drop
-
1.20.120 Dec 2021 -
1.20.016 Dec 2021Release notes
Open source →- Update
analyzerconstraint to>=2.0.0 <4.0.0. - Add an
--ignore-timeoutscommand line flag, which disables all timeouts for all tests. This can be useful when debugging, so tests don't time out during debug sessions. - Create a trusted types policy when available for assigning the script URL for web tests.
- Update
-
1.19.530 Nov 2021Release notes
Open source →- Try to get more logging from
chromeon windows to diagnose intermittent failures.
- Try to get more logging from
-
1.19.424 Nov 2021Release notes
Open source →- Wait for paused VM platform isolates before shutdown.
TestFailureimplementsExceptionfor compatibility withonly_throw_exceptions.
-
1.19.302 Nov 2021Release notes
Open source →- Remove duplicate logging of suggestion to enable the
chain-stack-tracesflag, a single log will now appear at the end.
- Remove duplicate logging of suggestion to enable the
-
1.19.225 Oct 2021 -
1.19.121 Oct 2021 -
1.19.020 Oct 2021Release notes
Open source →- Support query parameters
name,full-name,line, andcolon test paths, which will apply the filters to only those test suites.- All specified filters must match for a test to run.
- Global filters (ie:
--name) are also still respected and must match. - The
lineandcolwill match if any frame from the test trace matches (the test trace is the current stack trace wheretestis invoked).
- Give a better exception when using
markTestSkippedoutside of a test.
- Support query parameters
-
1.18.201 Oct 2021