【问题标题】:Swiftlint underscore name swiftSwiftlint 下划线名称 swift
【发布时间】:2019-06-06 05:45:15
【问题描述】:

我在我的项目中使用swiftlint。项目名称是ABC xx,它可以与 swiftlint 一起正常工作。现在我决定将Unitest 包含在我的应用程序中,我必须将@testable import ABC_xx 导入到class ABC_xxTests: XCTestCase { 的快速测试文件中,而不是Swiftlinter 出现错误,上面写着Type Name Violation: Type name should only contain alphanumeric characters: 'ABC_xxTests' (type_name) 如何对这个错误进行排序

【问题讨论】:

  • 你可以为这个做//swiftlint:disable:this type_name吗?
  • 这会包含在我的 appDelegate 中还是在哪里?
  • //swiftlint:disable:this type_name class ABC_xxTests: XCTestCase { 仍然显示相同的错误

标签: swift swiftlint


【解决方案1】:

下划线用于添加.swiftlint.yml的变量名:

variable_name:
     allowed_symbols: "_"

【讨论】:

  • 使用 SwiftLint 0.39.2 测试:'variable_name' rule has been renamed to 'identifier_name' and will be completely removed in a future release.
【解决方案2】:

除了@carmine 的回答,在.swiftlint.yml 中为任何规则添加属性时,请记住以下两点:

  • 应该在新行中列出
  • 并且应该以空格开头。

就我而言,我忽略了allowed_symbols 之前的空白。所以棉绒不起作用。当我添加空格时,它是成功的。

【讨论】:

    【解决方案3】:

    以下 swiftlint 规则允许在 Swift 类名中使用下划线:

    type_name:
      allowed_symbols: "_"
    

    编辑: 如果您还想为变量名启用下划线,请使用:

    identifier_name:
      allowed_symbols: "_"
    

    【讨论】:

      【解决方案4】:

      您可以禁用指定文件夹的规则,在您的情况下,它是一个 ABC_xxTests 文件夹。在.swiftlint.yml 配置文件中,您可以使用“排除”属性。如果您还没有创建 swiftlint 配置文件,您可以创建一个名为 .swiftlint.yml 的配置文件并将其放在项目根文件夹中。

      添加以下行:

      excluded:
          - ABC_xxTests
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-01
        • 2014-09-19
        • 2015-09-21
        相关资源
        最近更新 更多