flutster
使用此 Widget 記錄您的 Flutter UI 測試。將 UI 測試儲存下來,以便自動重播。
- 星標
- 3
- 分支
- 1
- 最近推送(UTC)
- 2023年9月18日
- 專案狀態
- 已封存
原始 README
以下為英文專案原文快照,最新內容請造訪 GitHub。
Flutster
Easy Flutter app integration testing automation as replayable records.
Purpose
Conduct integration testing in a Flutter application by recording user events and comparing widget screenshots.
Easily detect errors in UI such as layout issues, unexpected behavior, and more with Flutster.
Use cases:
- Recording user events such as clicks and taps on widgets
- Track widget behavior and detect sources of UI issues
- Compare widgets with screenshots for difference using a variety of algorithms
- Simulate robo testing on Flutter apps
- Store recordings of your application
What you can track
Taps:
- Time the tap occurred
- Location of a tap
- Duration of a tap
- Widget tracking the event
Keys:
- Time the key press occurred
- Character of key pressed
- Duration of a key press
- Widget tracking the event
Screenshots:
- Time the screenshot was taken
- Comparison function used to compare screenshots
- Widget tracking the event
Platforms
Flutster has only been tested with Android.
Example
An example of use for this plugin is available under the example folder.
Dependency
Add to pubspec.yaml
dependencies:
flutster:
Import:
import 'package:flutster/flutster.dart';
How to use
Method One: Replace or place one Scaffold per page you want to test with a FlutsterScaffold. For example:
return FlutsterScaffold(
name: "myUniqueWidgetName",
appBar: AppBar(
title: Text(widget.title),
),
body: ...
);
Method Two: Create the FlutsterTestRecorder and reference the widgets to test.
FlutsterTestRecorder(
name: "myUniqueWidgetName",
child: myWidget,
)
Once the Flutster plugin is integrated in your Android application, run the application either on an Android emulator or on a physical device with the help of scrcpy.
Use the Flutster menu to record widgets. Interact with your application to record user events. Store and playback recordings to test.
Documentation
Flutster documentation is available at site.flutster.com.
Feature requests/comments/questions/bugs
Feel free to log your feature requests/comments/questions/bugs here: https://github.com/jod-li/flutster/issues
Contributions
We would be happy to merge pull request proposals provided that:
- they don't break the compilation
- they provide the relevant adaptations to documentation
- they bring value
- they don't completely transform the code
- they are readable
Contributions and forks are very welcome!
In your pull request, feel free to add your line in the contributors section below:
Contributors
CI/CD
Continuous integration/deployment status:
分類
使用的依賴
依賴清單 9 項
- flutter
{"sdk":"flutter"} - image_compare_2
>=1.1.3 <3.0.0 - flutter_test
{"sdk":"flutter"} - share_plus
>=6.3.1 <8.0.0 - http
>=0.13.4 <2.0.0 - intl
>=0.18.0 <1.0.0 - cross_file
>=0.3.3+4 <1.0.0 - archive
>=3.3.9 <5.0.0 - flutter_lints開發依賴
>=2.0.1 <3.0.0
如何選擇適合專案的儲存庫?
先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
- 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
- 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
- 使用前在 GitHub 確認 README、授權條款與 Issues。
來源與維護
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗