ft 0.3.0 ft: ^0.3.0 copied to clipboard
End to end test runner for Flutter projects ideal for integrating on CI/CD workflows.
Flutter Tester #
A Dart package that lets you test your Flutter apps in headless mode.
Notice #
This project is under active development. For instance it support only iOS runtime with mono-threaded test running. Please check for updates before every use with
dart pub global activate ft
Motivation #
Flutter is a great framework for cross-platform app development which gives the possibility to deploy the first version on a record time. The time consuming part of the Flutter development flow is the end to end testing. Currently there's nothing which lets you test your application in a completely automatised way. This package let you to integrate your cross platform end to end tests in your CI/CD workflows.
Installing #
dart pub global activate ft
Using #
ft --device=<simulator_uid> --platform=<plaform_name> --permission=<permission> integration_test/<file_name>
Headless mode #
By default tests will run on headless mode. If you want to disable you can use --no-headless
flag.
Simulator uid #
For iOS
You can use one or more of following simulators.
iPhone
- 4s
com.apple.CoreSimulator.SimDeviceType.iPhone-4s
- 5
com.apple.CoreSimulator.SimDeviceType.iPhone-5
- 5s
com.apple.CoreSimulator.SimDeviceType.iPhone-5s
- 6 plus
com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus
- 6
com.apple.CoreSimulator.SimDeviceType.iPhone-6
- 6s
com.apple.CoreSimulator.SimDeviceType.iPhone-6s
- 6s plus
com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus
- se
com.apple.CoreSimulator.SimDeviceType.iPhone-SE
- 7
com.apple.CoreSimulator.SimDeviceType.iPhone-7
- 7 plus
com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus
- 8
com.apple.CoreSimulator.SimDeviceType.iPhone-8
- 8 plus
com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus
- x
com.apple.CoreSimulator.SimDeviceType.iPhone-X
- xs
com.apple.CoreSimulator.SimDeviceType.iPhone-XS
- xs max
com.apple.CoreSimulator.SimDeviceType.iPhone-XS-Max
- xr
com.apple.CoreSimulator.SimDeviceType.iPhone-XR
- 11
com.apple.CoreSimulator.SimDeviceType.iPhone-11
- 11 pro
com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro
- 11 pro max
com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max
- iPhone 12 mini
com.apple.CoreSimulator.SimDeviceType.iPhone-12-mini
- iPhone 12
com.apple.CoreSimulator.SimDeviceType.iPhone-12
- iPhone 12 Pro
com.apple.CoreSimulator.SimDeviceType.iPhone-12-Pro
- iPhone 12 Pro Max
com.apple.CoreSimulator.SimDeviceType.iPhone-12-Pro-Max
- se 2nd gen
com.apple.CoreSimulator.SimDeviceType.iPhone-SE--2nd-generation-
iPad
- 2
com.apple.CoreSimulator.SimDeviceType.iPad-2
- retina
com.apple.CoreSimulator.SimDeviceType.iPad-Retina
- air
com.apple.CoreSimulator.SimDeviceType.iPad-Air
- mini 2
com.apple.CoreSimulator.SimDeviceType.iPad-mini-2
- mini 3
com.apple.CoreSimulator.SimDeviceType.iPad-mini-3
- mini 4
com.apple.CoreSimulator.SimDeviceType.iPad-mini-4
- air 2
com.apple.CoreSimulator.SimDeviceType.iPad-Air-2
- pro 9.7
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-
- pro 12.9
com.apple.CoreSimulator.SimDeviceType.iPad-Pro
- 5th gen
com.apple.CoreSimulator.SimDeviceType.iPad--5th-generation-
- pro 12.9 2nd gen
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---2nd-generation-
- pro 10.5
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--10-5-inch-
- 6th gen
com.apple.CoreSimulator.SimDeviceType.iPad--6th-generation-
- 7th gen
com.apple.CoreSimulator.SimDeviceType.iPad--7th-generation-
- 8th gen
com.apple.CoreSimulator.SimDeviceType.iPad--8th-generation-
- pro 11
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch-
- pro 12.9 3rd gen
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---3rd-generation-
- pro 11 2nd gen
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch---2nd-generation-
- pro 12.9 4th gen
com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---4th-generation-
- mini 5th gen
com.apple.CoreSimulator.SimDeviceType.iPad-mini--5th-generation-
- air 3rd gen
com.apple.CoreSimulator.SimDeviceType.iPad-Air--3rd-generation-
Permissions #
For iOS
Following permissions are supported:
'all'
'calendar'
'contacts-limited'
'contacts'
'location'
'location-always'
'photos-add'
'photos'
'media-library'
'microphone'
'motion'
'reminders'
'siri'
Contribution #
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. We appreciate your contribution. Please refer to our contributing guidelines for further information.
For questions, support and general discussion, please use GitHub Discussions;
Documentation #
Documentation is hosted live on project's website