[swift] SwiftLint와 코드 테스트 자동화

SwiftLint

소개

SwiftLint는 Swift 코드 스타일 가이드를 지키기 위한 정적 분석 도구입니다. 이 도구를 사용하면 개발자들이 일관된 스타일 가이드를 따르며 Swift 코드를 작성할 수 있습니다.

이 글에서는 SwiftLint를 사용하여 코드 품질을 향상시키고 효율적인 코드 테스트 자동화를 어떻게 수행할 수 있는지 알아보겠습니다.

SwiftLint 설정

  1. SwiftLint를 설치하기 위해 brew를 사용합니다.
    $ brew install swiftlint
    
  2. 프로젝트 루트 디렉토리에서 .swiftlint.yml 파일을 생성합니다. 이 파일은 SwiftLint의 설정을 담당합니다.
    $ touch .swiftlint.yml
    
  3. .swiftlint.yml 파일을 편집하여 원하는 규칙을 설정합니다. 예를 들어, 콘솔 로그 사용을 금지하는 규칙을 추가하려면 다음과 같이 작성합니다.
    console:
      excluded:
        - "Logger.swift"
    
  4. 메인 프로젝트의 Build Phases 탭으로 이동합니다.
  5. New Run Script Phase 버튼을 클릭하여 새로운 스크립트 단계를 추가합니다.
  6. 다음 스크립트를 입력합니다.
    if which swiftlint >/dev/null; then
        swiftlint
    else
        echo "SwiftLint not installed, download from https://github.com/realm/SwiftLint"
    fi
    
  7. 스크립트를 적용하여 빌드 시간마다 SwiftLint를 실행하도록 설정합니다.

코드 테스트 자동화

SwiftLint를 적용하여 코드 품질을 유지하는 동시에 코드 테스트 자동화를 구축할 수 있습니다. 이를 위해 젠킨스와 같은 CI/CD 도구를 사용할 수 있습니다.

젠킨스를 사용하여 코드 테스트 자동화를 설정하는 방법은 아래와 같습니다.

  1. 젠킨스를 설치합니다.
  2. 새로운 프로젝트를 생성합니다.
  3. 프로젝트 구성에서 소스 코드 관리 섹션 아래의 저장소 설정을 선택합니다.
  4. 저장소 URL, 인증 정보 및 분기를 설정합니다.
  5. 빌드 유발 섹션에서 GitHub hook trigger for GITScm polling을 선택합니다.
  6. 빌드 세션에서 빌드 스텝을 추가합니다.
  7. 빌드 전 스텝을 추가하고 아래 스크립트를 입력합니다.
    # 프로젝트 디렉토리로 이동
    cd /path/to/your/project
       
    # 프로젝트 빌드
    xcodebuild build -project YourProject.xcodeproj -scheme YourScheme -sdk iphonesimulator
       
    # 프로젝트에 SwiftLint 적용
    if which swiftlint >/dev/null; then
        swiftlint
    else
        echo "SwiftLint not installed, download from https://github.com/realm/SwiftLint"
    fi
    
  8. 빌드 후 스텝을 추가하고 아래 스크립트를 입력합니다.
    # 테스트 실행
    xcodebuild test -project YourProject.xcodeproj -scheme YourScheme -sdk iphonesimulator
    

이렇게 설정하면 코드 변경이 발생할 때마다 스크립트가 실행되어 SwiftLint를 적용하고 코드를 컴파일하며 테스트를 실행합니다.

결론

SwiftLint는 개발자들이 Swift 코드를 작성하고 유지하는 동안 일관된 스타일을 유지할 수 있도록 도와줍니다. 또한 CI/CD 도구와 함께 사용하여 코드 테스트 자동화를 구축할 수 있습니다.

SwiftLint를 프로젝트에 적용하고 코드 품질을 향상시켜보세요. Happy coding! 🚀


참고: