为测试目标/单元测试文件禁用一些 SwiftLint 规则

ben*_*lis 5 unit-testing xctest swift swiftlint

我希望为我的应用程序中的单元测试禁用几个 SwiftLint 规则。

例如,我想禁用weak_delegate单元测试的规则。

查看了 SwiftLint 文档后,我认为可以通过定义自定义的 weak_delegate 规则并排除单元测试的路径来实现。

https://github.com/realm/SwiftLint#defining-custom-rules

小智 11

排除测试目标的某些规则的最佳方法是嵌套配置:您将第二个 .swiftlint.yml 添加到测试目录的根目录中,并禁用规则。

disabled_rules:
    - weak_delegate
    - cyclomatic_complexity
    - force_unwrapping
    - function_body_length
Run Code Online (Sandbox Code Playgroud)

  • 重要细节:如果要使用嵌套配置,则不能使用 --config 参数。查看 @Barbara K 提供的链接文档以获取更多信息。 (2认同)

Dur*_*rdu 9

您可以使用以下方法在本地级别禁用它们:

//swiftlint:disable weak_delegate
let someDelete: someDelegate?
//swiftlint:enable weak_delegate
Run Code Online (Sandbox Code Playgroud)

或在目标级别,通过修改您的 .swiftlint.yml 文件(隐藏)

weak_delegate:
    excluded: ".*Test\\.swift" //regex path to your tests folder
Run Code Online (Sandbox Code Playgroud)

或在项目级别,通过修改您的 .swiftlint.yml 文件(隐藏)

disabled_rules:
 - weak_delegate
Run Code Online (Sandbox Code Playgroud)

  • 不适合我...我想禁用单元测试但还没有找到方法 (6认同)

Vla*_*rin 6

将其添加到您的.swiftlint.yml

weak_delegate:
    excluded: ".*Test\\.swift" //regex path to your tests folder
Run Code Online (Sandbox Code Playgroud)