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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5fca6d093ff0c98f9305d9e9c4717713ca24363061ae3cddf2a05c550531841e |
|
MD5 | 9563032342bf5bf3fd9679a63b6e1c0d |
|
BLAKE2b-256 | 1f13f0b36d2ca547e13098b36ce928b9d40593775fcde312554472b35db666c7 |