🤖
swift-testingでCI上で実行しないテストを書く
swift-testingのenabledを使うとテストの実行条件を書くことが出来る。
ここでCI上で動作しているかのチェックをすれば、CIではテストをスキップできる。
@Test(.enabled(if: !isRunningInCI()))
func sort() async throws {
...
}
func isRunningInCI() -> Bool {
let environment = ProcessInfo.processInfo.environment
let ciEnvironments = [
"GITHUB_ACTIONS",
"TRAVIS",
"CIRCLECI",
"GITLAB_CI",
"JENKINS_HOME",
"APPVEYOR"
]
for ciEnv in ciEnvironments {
if environment[ciEnv] != nil {
return true
}
}
return false
}
Discussion