跳转到主要内容

Xcode 警告质量门

项目描述

xcwarnings

xcwarnings 是一个帮助Xcode开发者设置质量门以捕获其代码库中引入的新构建警告的工具。该门旨在在拉取请求或持续集成管道上运行。

[ 功能 | 需求 | 安装 | 使用 | 运行测试 | 贡献 | 商标 ]

功能

  • 检查Xcode构建输出日志中的构建警告,并在遇到意外警告时失败。

  • 可以排除一个在可选的已知警告配置文件中提供的警告列表,以触发失败。该配置文件易于阅读,并采用JSON格式。

  • 为当前的Xcode构建输出日志生成基线已知警告文件。这在开始使用此工具或升级主要Xcode版本时很有用。

注意:如果您的项目已经是零警告,您可以通过使用“将警告视为错误”的构建设置将所有警告转换为错误,并依赖于构建失败。

需求

  • Python 3.6或更高版本
  • 已测试与Xcode 12.4的日志。

安装

$ pip install xcwarnings

注意:建议在Python 3虚拟环境中运行上述命令。有关设置虚拟环境的更多信息,请参阅Python入门

使用

usage: xcwarnings.py [-h]
                 [--known_build_warnings_file_path KNOWN_BUILD_WARNINGS_FILE_PATH]
                 --source_root SOURCE_ROOT [--generate_baseline]
                 xcode_build_output_file_path

positional arguments:
  xcode_build_output_file_path
                        Path to the xcode output file

optional arguments:
  -h, --help            show this help message and exit
  --known_build_warnings_file_path KNOWN_BUILD_WARNINGS_FILE_PATH
                        Full path to a file with known build warnings
  --source_root SOURCE_ROOT
                        File path for the root of the source code
  --generate_baseline   Whether a new baseline of known issues should be
                        generated.

示例

生成基线配置文件

要在桌面生成基线配置,对于位于 ./tests/xcwarnings_tests/test_output_file_warnings.txt 的示例xcode日志文件,您可以运行以下命令

$ python3 -m xcwarnings.xcwarnings ./tests/xcwarnings_tests/test_output_file_warnings.txt \
          --known_build_warnings_file_path ~/Desktop/generated_known_issues.json \
          --source_root ~/Documents/XCWarningsDemo \
          --generate_baseline

要为您的项目生成基线,首先编译您的项目,将输出存储在日志文件中

$ xcodebuild build -project [PATH_TO_YOUR_PROJ.xcodeproj] >~/Desktop/log_output.log

然后

$ python3 -m xcwarnings.xcwarnings ~/Desktop/log_output.log \
          --known_build_warnings_file_path ~/Desktop/generated_known_issues.json \
          --source_root ~/Documents/XCWarningsDemo \
          --generate_baseline

检查回归

检查Xcode构建日志是否包含给定配置文件中未引用的新警告

$ python3 -m xcwarnings.xcwarnings ./tests/xcwarnings_tests/test_output_file_warnings.txt \
          --known_build_warnings_file_path ~/Desktop/generated_known_issues.json \
          --source_root ~/Documents/XCWarningsDemo

注意:建议在Python 3虚拟环境中运行上述命令。有关如何设置虚拟环境的更多信息,请参阅Python入门

示例配置文件

配置文件应采用JSON格式。它是一个预期警告的数组。每个警告应包括警告语句和期望出现的次数。如果警告是在文件级别,则应提供file_path。file_path应相对于SOURCE_ROOT。如果警告是在目标级别,则应提供target和project。以下是一个示例。

[
    {
        "warning": "'statusBarOrientation' was deprecated in iOS 13.0: Use the interfaceOrientation property of the window scene instead.",
        "file_path": "XCWarningsDemo/ContentView.swift",
        "count": 2
    },
    {
        "warning": "'deprecatedApi()' is deprecated",
        "file_path": "XCWarningsDemo/ContentView.swift",
        "count": 1
    },
    {
        "warning": "AddressBookUI is deprecated. Consider migrating to ContactsUI instead.",
        "target": "XCWarningsDemoTarget",
        "project": "XCWarningsDemo",
        "count": 1
    }
]

运行测试

一旦激活了您的virtualenv并且安装了所有依赖项,请运行测试

python3 -m pytest

贡献

本项目欢迎贡献和建议。大多数贡献都需要您同意一份贡献者许可协议(CLA),声明您有权利,并且实际上确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.opensource.microsoft.com

当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并适当装饰PR(例如,状态检查,注释)。只需遵循机器人提供的说明即可。您在整个使用我们的CLA的仓库中只需这样做一次。

本项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则FAQ或通过opencode@microsoft.com联系以获取任何额外的问题或评论。

商标

本项目可能包含项目、产品或服务的商标或徽标。授权使用Microsoft商标或徽标受Microsoft的商标与品牌指南约束,并必须遵守。在此项目的修改版本中使用Microsoft商标或徽标不得引起混淆或暗示Microsoft的赞助。任何使用第三方商标或徽标的使用均受这些第三方政策约束。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

xcwarnings-0.3.0.tar.gz (12.6 kB 查看哈希值)

上传时间

构建分布

xcwarnings-0.3.0-py3-none-any.whl (13.0 kB 查看哈希值)

上传时间 Python 3

支持者