Files
SwiftLint/Source/SwiftLintFrameworkTests/IntegrationTests.swift
T
Norio Nomura 78a810fd0f Generate assertion on every violations in testSwiftLintLints()
It makes violations browsable on Xcode's Issue Navigator.
2016-01-24 18:15:33 +09:00

33 lines
1.1 KiB
Swift

//
// IntegrationTests.swift
// SwiftLint
//
// Created by JP Simard on 5/28/15.
// Copyright (c) 2015 Realm. All rights reserved.
//
import Foundation
import SourceKittenFramework
import SwiftLintFramework
import XCTest
class IntegrationTests: XCTestCase {
func testSwiftLintLints() {
// This is as close as we're ever going to get to a self-hosting linter.
let directory = (((__FILE__ as NSString)
.stringByDeletingLastPathComponent as NSString)
.stringByDeletingLastPathComponent as NSString)
.stringByDeletingLastPathComponent
NSFileManager.defaultManager().changeCurrentDirectoryPath(directory)
let config = Configuration(path: Configuration.fileName)
let swiftFiles = config.lintableFilesForPath("")
XCTAssert(swiftFiles.map({$0.path!}).contains(__FILE__), "current file should be included")
let violations = swiftFiles.flatMap {
Linter(file: $0, configuration: config).styleViolations
}
violations.forEach {
XCTFail($0.reason, file: $0.location.file!, line: UInt($0.location.line!))
}
}
}