[swift] Quick/Nimble과 Slack을 함께 사용하기
소개
Swift 프로젝트를 개발하면서 테스트를 작성하는 것은 매우 중요합니다. 그 중에서도 Quick과 Nimble은 많은 개발자들에게 인기있는 테스트 프레임워크입니다. 이번에는 Quick/Nimble을 사용하여 테스트를 작성하고, 테스트 결과를 Slack에 알림으로 받는 방법에 대해 알아보겠습니다.
Quick/Nimble이란?
- Quick: BDD(Behavior-Driven Development) 패턴을 따르는 테스트 프레임워크로, Human Readable한 문법을 제공하여 테스트를 작성할 수 있습니다.
- Nimble: Quick과 함께 사용되는 Matcher 라이브러리로, 테스트 결과를 검증하는 다양한 코드를 제공합니다.
Slack 알림 설정하기
먼저 Slack에 알림을 받기 위해서는 Incoming Webhooks 기능을 사용해야 합니다.
- Slack 워크스페이스에서 “Apps”으로 이동합니다.
- “App Directory”에서 “Incoming Webhooks”를 검색하고 설치합니다.
- “Incoming Webhooks” App을 선택하고, “Add to Slack”을 클릭합니다.
- 알림을 받을 채널을 선택하고 “Add Incoming Webhooks Integration”을 클릭합니다.
- “Webhook URL”을 복사합니다.
Quick/Nimble 프로젝트에 Slack 연동하기
- Terminal을 열고 프로젝트 디렉토리로 이동합니다.
- 프로젝트에
swift-slack-sdk
패키지를 추가합니다.
.package(url: "https://github.com/SlackKit/SlackKit.git", from: "4.3.0"),
Package.swift
파일에 패키지를 추가한 후, 종속성을 업데이트합니다.
import PackageDescription
let package = Package(
name: "MyProject",
dependencies: [
.package(url: "https://github.com/SlackKit/SlackKit.git", from: "4.3.0"),
],
targets: [
.target(
name: "MyProject",
dependencies: ["SlackKit"]),
]
)
./Sources/MyProject
디렉토리에SlackClient.swift
파일을 생성하고, 다음 코드를 작성합니다.
import SlackKit
class SlackClient {
static let shared = SlackClient()
let slack = SlackClient(apiToken: "YOUR_SLACK_API_TOKEN")
func sendNotification(message: String) {
slack.sendChatMessage(channel: "YOUR_SLACK_CHANNEL", text: message)
}
}
- Quick/Nimble에서 테스트 결과를 Slack에 알림으로 보내기 위해
QuickConfiguration
을 설정합니다.
import Quick
import Nimble
class QuickSpec: QuickSpec {
override func spec() {
beforeEach {
// Slack 알림 전송
SlackClient.shared.sendNotification(message: "Test started")
}
describe("Some tests") {
it("should pass") {
expect(true).to(beTrue())
}
it("should fail") {
expect(false).to(beTrue())
}
}
afterEach {
// Slack 알림 전송
SlackClient.shared.sendNotification(message: "Test finished")
}
}
}
QCKMain([QuickSpec.self])
- SlackClient의
YOUR_SLACK_API_TOKEN
과YOUR_SLACK_CHANNEL
을 해당하는 값으로 변경합니다.
결과 확인하기
위에서 설정한 Quick/Nimble 테스트를 실행하면, 각 테스트 전후에 해당하는 Slack 채널로 알림이 전송되는 것을 확인할 수 있습니다.
결론
이제 Quick/Nimble과 Slack을 연동하여 테스트 결과를 실시간으로 확인할 수 있습니다. 테스트 결과를 Slack으로 받으면 팀원들과 공유하고 신속하게 문제를 해결할 수 있어 개발 생산성을 높일 수 있습니다.