【问题标题】:SwiftLint 'excluded' not working for one folderSwiftLint“排除”不适用于一个文件夹
【发布时间】:2021-03-28 06:50:54
【问题描述】:

我的 swiftlint.yml 文件不包括我的“Generated Mocks”文件夹。我试过Generated\ Mocks'Generated Mocks' 有解决办法吗?

excluded:
  - Pods
  - MyProjectTests
  - MyProject/Helpers/Constants.swift
  - Generated Mocks

编辑:Generated Mocks 文件夹是从我添加的依赖项生成的,希望对您有所帮助

【问题讨论】:

  • 用双引号还是单引号试试?
  • 是的,我试过双引号和单引号
  • 你试过引号和转义空格吗? - "Generated\ Mocks" ?
  • 你可以尝试使用数组语法excluded: [Pods, ..., Generated Mocks]。但是,在 YAML 中,它应该在没有引号的情况下工作。你确定路径正确吗?
  • 我在我正在处理的项目中做了一个快速测试,我没有问题通过添加文件夹名称来排除名称中有空格的文件夹

标签: swift xcode swiftlint


【解决方案1】:
  1. 不要在 swiftlint.yml 文件中编写排除的命令,只需使用 included 命令并在此处添加您的项目路径、测试等(您想要 swiftlint 的路径运行)。

    例如,我的 swiftlint.yml 文件如下所示:

included:
 - [PROJECT_NAME]
 - [PROJECT_NAME]Tests
 - [PROJECT_NAME]UITests

我只有一个 included 命令,并且我添加了我希望我的 swiftlint 规则起作用的路径。

  1. 确保添加此命令:
if which swiftlint >/dev/null; then
swiftlint --config [PROJECT_PATH]/.swiftlint.yml
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

到:

目标 > 构建阶段 > 运行脚本

  1. 最后,确保您的 .swiftlint.yml 文件位于项目的根路径中。

构建项目,您将看到您的 SwiftLint 警告将仅针对您包含的文件夹和文件显示。

【讨论】:

    【解决方案2】:

    另一种方法是将目标文件夹名称从 Genera†ed Mocks 更改为 GeneratedMocks,然后在 .yaml 中使用它(对我有用):

    excluded:
    - Pods
    - UnitTests/generated/GeneratedMocks.swift
    

    【讨论】:

      猜你喜欢
      • 2018-12-29
      • 2016-05-18
      • 2020-12-01
      • 1970-01-01
      • 2017-02-01
      • 2016-08-25
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多