原文地址:swerdlowben.medium.com/automating-…
发布时间:2020年12月23日-3分钟阅读
概述
当在一个大型团队或开源项目中工作时,代码审查可能会变得非常耗时,特别是当你不得不阅读大量写得不好的代码时。减轻这种负担的一种方法是设置自动代码分析、格式化和UI测试。
本教程将介绍如何设置Github Actions来检查代码质量、格式化,并运行UI测试来验证拉取请求。
本资源库中的所有代码都将在这里以模板形式提供:github.com/theswerd/fl…
先决条件
步骤
在Github仓库的根目录下创建一个Flutter App。
flutter create --project-name myapp .
创建一个名为analysis_options.yaml
的文件。这个文件将用于自定义分析器,使其忽略安装在动作中的flutter依赖。
这个文件应该是这样的。
analyzer:
exclude:
- flutter/**
创建Github行动
Github Actions存储在.github/workflows
文件夹中,所以对于测试来说,创建一个名为:.github/workflows/tests.yaml
的文件。
部件。
名称:
名称是Github Actions文件的第一部分,它定义了文件中动作的名称。
name: TEST FLUTTER APP
关于
On部分定义了何时运行这个动作。每当有拉取请求时,这个动作都需要运行,以便验证其中的代码。
on:
push:
pull_request:
branches:
- main
环境
Env定义了动作的全局环境变量。为了使其易于更新,应将Flutter版本放在环境变量中。
env:
FLUTTER_VERSION: "1.22.1"
作业
作业部分定义了将要完成的作业。翩翩起舞测试作业看起来像这样。
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Install Flutter
run: git clone https://github.com/flutter/flutter.git --depth 1 -b $FLUTTER_VERSION flutter
- name: Add Flutter to Path
run: echo "$GITHUB_WORKSPACE/flutter/bin" >> $GITHUB_PATH
- name: Install Dependencies
run: flutter pub get
- name: Flutter Analyze
run: flutter analyze --no-pub
- name: Check Flutter Formatting
run: flutter format lib/** --set-exit-if-changed
- name: Run Flutter Tests
run: flutter test --no-pub
分解:
- Checkout Repository检查出Repository的代码到Action上
- 安装Flutter从Github上的Flutter Repository获取Flutter代码。
- 将 Flutter 添加到 Github Action 的路径中,因此它可以使用 flutter cli。
- 安装应用程序的依赖关系
- 运行flutter analyze来分析代码,检查是否有未使用的导入等错误。
- 运行 flutter format lib/** --set-exit-if-changed 来检查代码的格式是否正确。如果代码格式化得不好,将抛出一个错误。
- 运行flutter测试来运行在你的应用程序的测试目录中定义的测试。
齊心協力
name: TEST FLUTTER APP
on:
push:
pull_request:
branches:
- main
env:
FLUTTER_VERSION: "1.22.1"
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Install Flutter
run: git clone https://github.com/flutter/flutter.git --depth 1 -b $FLUTTER_VERSION _flutter
- name: Add Flutter to Path
run: echo "$GITHUB_WORKSPACE/_flutter/bin" >> $GITHUB_PATH
- name: Install Flutter Dependencies
run: flutter pub get
- name: Flutter Analyze
run: flutter analyze --no-pub
- name: Check Flutter Formatting
run: flutter format lib/** --set-exit-if-changed
- name: Run Flutter Tests
run: flutter test --no-pub
自动测试在行动
当有人提出一个糟糕的Pull Request时。
写得不好的代码无法通过测试
当有人提出代码请求,代码质量好的时候。
写得好的代码能通过测试
闭幕
这些自动化测试可以帮助你保持高代码质量,降低你的工作。希望对你今后的flutter项目有所帮助。
本资源库中的所有代码都将以模板形式在这里提供:github.com/theswerd/fl…
通过www.DeepL.com/Translator(免费版)翻译