Patrol 3.0 is here
Patrol 3.0 is the new major version of Patrol.
patrol v3
and DevTools extension
The highlight of this release is the Patrol DevTools Extension. We created
it to enhance your UI test development experience with patrol develop
by
making it much easier to explore the native view hierarchy. With Patrol's new
DevTools extension, you can effortlessly inspect the currently visible
Android/iOS views and discover their properties. This information can be then
used in native selectors like $.native.tap()
, eliminating the need for
external tools.
Patrol is one of the first packages in the whole Flutter ecosystem to have a DevTools extension. We have started working on it as soon as the Flutter team has announced that they're working on making DevTools extensible. We immediately realized how powerful this feature is and how it can enable us to deliver better UI testing experience.
This is, of course, just the beginning, and we have plans to introduce more features in future updates of our DevTools extension.
Changes in patrol
v3:
The DevTools extension is not the only new feature in this release. Other changes include:
-
Minimum Flutter version: The minimum supported Flutter version has been bumped to 3.16 to make it compatible with a few breaking changes that were introduced to the
flutter_test
package thatpatrol
andpatrol_finders
depend on. We hope you'll have an easy time upgrading to 3.16, but if not, you can always use Patrol v2 until you're ready to upgrade. -
A few breaking changes:
- The
bindingType
parameter has been removed from thepatrolTest()
function. Now, onlyPatrolBinding
is used and it's also automatically initialized. - The
nativeAutomation
parameter has also been removed from thepatrolTest()
function. NowpatrolTest()
implies native automation and you can usepatrolWidgetTest()
if you don't need it. PatrolTester
class has been renamed toPatrolIntegrationTester
. NowPatrolTester
is used withpatrolWidgetTest()
without native automation andPatrolIntegrationTester
is used withpatrolTest()
with native automation.
- The
-
Patrol CLI version requirement: Patrol v3 requires Patrol CLI v2.3.0 or newer, so make sure to
patrol update
!
patrol_finders
v2
Along with patrol
v3, we are releasing the v2 of patrol_finders. In case you
missed it, we split patrol_finders
from patrol
a few months ago in response
to our community members who loved Patrol's lean finders syntax, but weren't
interested in developing integration tests. Here's the docs
page about patrol_finders
in case you missed it.
Changes in patrol_finders
v2:
- Minimum Flutter version: The minimum supported Flutter version of
patrol_finders
has been bumped to 3.16, just like inpatrol
's case. - The deprecated
andSettle
method has been removed from allPatrolTester
andPatrolFinder
methods liketap()
,enterText()
, and so on. Developers should now usesettlePolicy
as a replacement, which has been available since June. - The default
settlePolicy
has been changed to SettlePolicy.trySettle.
Wrapping up
As you can see, these updates have a little bit of everything - a large new feature, support for the latest Flutter version, and a clean-up of a few deprecations. We encourage you to explore our new DevTools extension and look forward to your feedback and ideas for new features as we continue to evolve the Patrol ecosystem. Meanwhile, we're getting back to work on Patrol, with a single goal in mind – to make it the go-to UI testing framework for Flutter apps.