Dan*_*ico 7 unit-testing flutter flutter-test flutter-plugin
我们正在为 flutter 构建一个插件, iterable.com 这里la-haus/iterable-flutter,我们想要测试我们插件的 android 实现,我们已经能够为 flutter 端运行测试,但不能运行每个本机实现测试。
所以我们有:
lib/:库实现,客户端使用的接口。
tests/:测试库的 flutter 端android/
运行 flutter 插件测试,flutter test在项目的根目录运行,它运行test/iterable_flutter_test.dart,但不运行 android 的。
我们已经看到这些文档flutter/wiki/Plugin-Tests,但我仍然不知道如何运行它们。
如何运行Android 实现 android/src/test测试?
我们当前的问题是https://github.com/la-haus/iterable-flutter/issues/22
小智 2
我们问了同样的问题,但很惊讶没有找到任何使用 flutter 运行本机测试的示例 - 如https://github.com/flutter/flutter/wiki/Plugin-Tests中所述(感谢您提供链接) 。
假设:插件结构由flutter create --template=plugin --platforms=android ...命令搭建起来。
要运行本机测试,请确保正确创建本地 gradle 属性文件./example/android/local.properties和。这可以通过在插件的根目录下运行或./android/local.properties来实现。flutter pub getflutter test
然后您就可以运行了gradle --project-dir ./example/android test,它将执行插件示例中所有子项目的测试目标(其中包括有效的插件代码)
下面是一个用于测试插件(名称:)的(稍微精简的)github actions 工作流程示例plgn1:
name: CI/CD, test code
on: [push]
jobs:
plgn1-plugin:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./app/3rdparty/plgn1
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v2
with:
java-version: "11"
distribution: "adopt"
cache: 'gradle'
- uses: subosito/flutter-action@v2
with:
flutter-version: "3.0.1"
channel: "stable"
- name: Config flutter
run: flutter config --no-analytics
- name: "Run flutter pub get"
run: flutter pub get
- name: "Run Flutter test(s)"
run: flutter test
- name: "Run Flutter test(s) for plugin example"
run: flutter test
working-directory: ./app/3rdparty/plgn1/example
- name: "Run Android test(s) for plugin example"
run: gradle --project-dir ./example/android --no-daemon test
Run Code Online (Sandbox Code Playgroud)
插件测试的描述方式native-tests听起来非常简单可行,但玩了 1 个小时后我失去了耐心(我最终感觉它不是为像我们这样的 flutter 插件设计的)。
我最终跳过flutter_plugin_tools并直接继续gradle。这可能不是它在 flutter 生态系统中运行的方式,但它对我们有用。
当您找到一种更简单或更优雅的方式来运行 flutter 插件的本机测试时,请告诉我!
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |