Skip to content

Flutter-first UI testing framework. Ready for action!

License

Notifications You must be signed in to change notification settings

vincent-hoodoo/patrol

 
 

Repository files navigation

Patrol

patrol on pub.dev patrol_cli on pub.dev code style powered by

Patrol promotial graphics

Simple yet powerful Flutter-native UI testing framework eliminating limitations of flutter_test, integration_test, and flutter_driver.

Learn more about Patrol:

Patrol custom finders

Flutter's finders are powerful, but not very intuitive to use.

We took them and made something awesome.

Thanks to Patrol's custom finders, you'll take your tests from this:

testWidgets('signs up', (WidgetTester tester) async {
  await tester.pumpWidget(AwesomeApp());
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('emailTextField')),
    'charlie@root.me',
  );
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('nameTextField')),
    'Charlie',
  );
  await tester.pumpAndSettle();

  await tester.enterText(
    find.byKey(Key('passwordTextField')),
    'ny4ncat',
  );
  await tester.pumpAndSettle();

  await tester.tap(find.byKey(Key('termsCheckbox')));
  await tester.pumpAndSettle();

  await tester.tap(find.byKey(Key('signUpButton')));
  await tester.pumpAndSettle();

  expect(find.text('Welcome, Charlie!'), findsOneWidget);
});

to this:

patrolTest('signs up', (PatrolTester $) async {
  await $.pumpWidgetAndSettle(AwesomeApp());

  await $(#emailTextField).enterText('charlie@root.me');
  await $(#nameTextField).enterText('Charlie');
  await $(#passwordTextField).enterText('ny4ncat');
  await $(#termsCheckbox).tap();
  await $(#signUpButton).tap();
  
  await $('Welcome, Charlie!').waitUntilVisible();
});

Learn more about custom finders in the docs!

CLI

See packages/patrol_cli.

The CLI is needed to enable Patrol's native automation feature in integration tests.

To run widget tests, you can simply use flutter test.

Package

See packages/patrol.

About

Flutter-first UI testing framework. Ready for action!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 46.8%
  • Kotlin 24.7%
  • Java 19.9%
  • Swift 5.5%
  • Objective-C 1.7%
  • Shell 0.8%
  • Other 0.6%