convenient_test_common_dart
Write and debug tests easily, with full action history, time travel, screenshots, rapid re-execution, video records, interactivity, isolation and more
1.6.2
8.5K downloads/mo
#3148 most downloaded on pub.dev
fzyzcjy/flutter_convenient_test
What this package is like to depend on
Last release 4 months ago
28 Mar 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 23 of 23 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
23 releases · first in 2022
6 releases in the last 12 months
see the full history below
Release timeline
23 releases · May 2022 to Mar 2026
2023
2024
2025
2026
Releases
latest 23-
1.6.228 Mar 2026 -
1.6.108 Jan 2026 -
1.6.027 Dec 2025 -
1.5.616 Dec 2025 -
1.5.514 Dec 2025Release notes
Open source →Release notes
Open source →- Update versions for packages and increase flutter version to 3.35 #437 (thanks @Knupper)
-
1.5.401 Oct 2025 -
1.5.319 May 2025 -
1.5.220 Feb 2025 -
1.5.117 Oct 2024 -
1.5.030 Jun 2024 -
1.4.021 Jun 2024Release notes
Open source →- New CLI param --run-only allowing you to limit the tests this runs #395 (thanks @gnunicorn)
-
1.3.701 Jun 2024 -
1.3.630 May 2024 -
1.3.515 Mar 2024Release notes
Open source →- Migrate to gradle 7.4.2 #377 (thanks @meltzow)
- Change code format to improve pub scores #379 (thanks @meltzow)
-
1.3.406 Mar 2024 -
1.3.301 Feb 2024Release notes
Open source →- Using darker background for error text in dark mode #361 (thanks @jmatth)
-
1.3.205 Dec 2023 -
1.3.110 Oct 2023 -
1.3.010 Jul 2023Release notes
Open source →- Enjoy 5x speedup: Able to execute your tests not only on simulator/device, but also on host computer (much faster), without changing any code.
- Abundant information for errors: When something is not working, it tries to print out as much information as possible to help you quickly debug.
- Enhanced golden: GUI to check golden changes, allow a few pixels to be different, screenshot widgets above your widget, etc (Standalone feature, does not require full convenient_test)
- Utilities: Enter text without replacing, pump with run async, etc. (Standalone feature, does not require full convenient_test)
-
1.2.125 Oct 2022 -
1.2.018 Sep 2022Release notes
Open source →- Fix dependency resolution issues and improve Actions #274 (thanks @bartekpacia)
- Adds a settle argument to tTestWidgets #273 (thanks @ronba)
- Fix bug causing config switches to be covered #268 (thanks @ethancadoo)
- flag to prevent pumpAndSettle for other commands #267 (thanks @ostk0069)
- Build conventient_test_manager_dart on Linux #265 (thanks @vHanda)
- Pass cmd args through to config #263 (thanks @ethancadoo)
- Command line args for gRPC connection #258 (thanks @ethancadoo)
- Add note about AVD in readme #257 (thanks @ethancadoo)
- Added Linux CI #255 (thanks @ethancadoo)
- Feature: add a settle flag to act method to prevent pumpAndSettle #252 (thanks @MCord)
- crop golden images - when you only want a portion of the widget to be captured #251
- Fix build issues in the CI pipeline #241 (thanks @Rohithgilla12)
- send hot restart to main isolate #237
- enhance golden comparator #233
- Enhance golden comparator #232
- Fix assertion failed when takeSnapshot: '!renderObject.debugNeedsPaint' is not true #234
-
1.1.122 May 2022Release notes
Open source →- Fix when
flutter build macosfor Manager, it shows error:Undefined symbols for architecture arm64: "_g_players", referenced from: +[VideoOutlet outletForPlayer:withTextureRegistry:] in VideoOutlet.o#221 - Allow configuration by reading a config file (e.g.
~/.config/convenient_test.json), useful for using precompiled Manager #220 - Fix building Windows application... dart_vlc-0.1.9/lib/src/widgets/controls.dart(185,55): error G76A9B1F6: The method 'back' isn't defined for the class 'Player'. #217
- Make initial window size bigger, otherwise many things overflowed #222
- Make MacOS CI pass, such that we have precompiled binaries #186
- Improve documentation
- Fix when
-
1.1.022 May 2022Release notes
Open source →Issues closed:
- create universal configuration, accept params from cmdargs, dart-define, etc #213
- allow Manager to load and display a Report without existence of worker #211
- GoldenDiffPage: set FilterQuality be none if zoom in (physical size much larger), and mid if zoom out #206
- GoldenDiffPage: allow pan/zoom an image, and other images should synchronously pan/zoom the same location #205
- GoldenDiffPage: compute pixelwise difference and show it #204
- GoldenDiffPage: allow arrow up/down key to navigate #203
- for updateGoldens, give a GUI to check golden files git diff #201
- macos + flutter 3.0, fail to compile #199
- migrate to flutter 3.0 #198
- add "root finder" to easily find the root widget #197
Mark.repaintBoundaryflag does not work when in combination with goldens #196- when golden fails because "image sizes do not match", should still provide visual diff #195
- improve the "screenshot panel", especially when it is showing golden images #192
- when
generateFailureOutput(i.e. one golden fails), currently it outputs one log, so (1) it will not remove log if with retry it succeed (2) tons of log exists #191 - create "super-run-id", and let Report and Video output to subfolders of a folder named by superRunId, such that different super-runs are naturally grouped #190
- gRPC error on M1 Macos #182
- configure macos Manager such that it can be compiled into release executables - currently can always use
flutter run/flutter profileeven without doing this #181 - manage golden
failures, generate them onto convenient_test data dirs #180 - explicitly show which golden test fails, by marking them on LogEntry (or throwing exceptions at the locations expectLater fails) #179
- visualize golden test failures clearly in our Manager #178
- "match golden" errors if the match fails #177
- display icon name instead of the default hex number if using
find.byIcon#176 - implement "append text to TextField" - current
enterTextwill replace all text #175 - add sticky header for log panel, such that know which test is looking at - possibly show group names & test name; only visible if the topmost visible item is a log entry #174
- make route name matcher have better description #171
- make text of matchers like
findsOneWidgetmore brief #170 - beautify "section" log entry UI, let users easily see this is section header #169
- add
Mark.repaintBoundaryparameter to easily add RepaintBoundary at test time for goldens #168 - implement two-finger gestures #167
- add various gesture detection tests #166
- in ci mode, when manager has started but worker has not yet started, should gracefully handle this case #165
- improve logging in ci mode: at least know which test is executing and how many remain #163
- add a hint text indicating "all tests finished" or "running some tests" #162
- maybe improve grammar:
t.get(find.text('hi')).tap()/.should(...)->find.text('hi').tap()/.should(...)#159 - make "logging reports to files" optional #157
- make write-file paths into sub-directories, currently all into the root temp dir making it messy #156
- further improve the top toolbar, since we are going to add more buttons and it will overflow #152
- Using outdated get_it version #150
- allow dynamically configure number of retries in panel #149
- when test name has special char like "+", regex fails #148
- exception when finished running tests in isolation mode #145
- for flaky tests, the "play video" button only plays the first video among all, instead of all videos #142
- do not show full error dialog, but collapse it by default and allow expand #141
- use hashcode+conflict-then-change to generate Test/Group
idthat is stable across hot-restarts #140 - add
dart-code-metrics, especially check "access map operator[] with wrong key type", because things like #136 will easily have such problems #137 - avoid referencing Test/Group via
id, because they do not preserve across hot-restarts - usenames instead #136 - When tap to run a test, have NPE error for
_GroupInfoSectionBuilder._buildHeader#135 - bug: after tapping "play video" button, no video is shown #134
- still use names to identify Test/Group instead of the newly proposed id; but throw error if there are duplicated names #133
- Test/Group id should stay stable across hot-restarts - because in "isolation mode" and with #130, we use id to identify tests across hot restarts #132
- protobuf should use int64 instead of int32 for (new) id, since we use snowflake which is 64bit #131
- generate and use unique
ids to determine tests and groups, since currently used testnames can be duplicate #130 - remove entryLocator, since test name is prefixed with group name, so no need to use group name to locate test name #129
- flutter test seems to allow duplicated names (even in same groups), but we rely on names to locate tests #128
- improve the "header panel" since too many items now #127
- remove the ManagerRpcService (abstraction layer above grpc to Manager), since will use new approach for CI mode #126
- let VideoDisplayStore/VideoPanel understand existence of multiple videos (currently only understand one) #125
- add a boot time config to specify whether to enable "hot-restart for every test" mode #124
- when in "hot-restart for every test" mode, also hot restart when a test is flaky and want to re-execute #123
- make the to-be-implemented "hot-restart for every test" an configurable optional feature #119
- refactor "ci mode" from pure-worker approach into the manager-aided approach #118
- extract pure-dart "manager_dart" from the "manager" package, such that it can run without gui; extract common_dart from common as well #117
- extensive golden support #116
- make generated id in worker be unique even across VM hot restart, by using a snowflake-like approach #115
- hot-restart every time a test is to be executed to improve isolation #113
- the intro video uploaded to youtube is blur #112