A lightweight XCTest utility package that solves 2 problems:
- Outputs logs only after all tests complete, preventing scattered logs during execution.
- Logs are printed only when running a single test case. When running all tests with ⌘+U, no output is produced, and delayed closures are skipped.
Add XCTestDelayPrinter to your Swift package dependencies.
.package(url: "https://github.com/wuyu2015/XCTestDelayPrinter", from: "1.0.2")Use pr for delayed logging:
import XCTestDelayPrinter
func testExample() {
pr("This will be printed after all tests.")
}
func testImmediatePrint() {
pr(This prints immediately.", force: true)
}Use delay for deferred execution (closures will not execute when running tests with ⌘+U):
import XCTestDelayPrinter
func testDelayedReturnString() {
delay {
"Hello World!"
}
}
func testDelayedComputation() {
delay {
print("Sleep start")
// 1
sleep(1)
print(1)
// 2
sleep(1)
print(2)
// 3
sleep(1)
print(3)
return "Sleep end"
}
}MIT License
一个轻量级的 XCTest 工具包,解决了 2 个问题:
- 在所有测试完成后输出日志,避免了测试过程中日志分散的问题。
- 仅在运行单个测试用例时输出日志,使用 ⌘+U 运行所有测试时,不会输出内容或跳过执行闭包。
将 XCTestDelayPrinter 添加到 Swift 包依赖中。
.package(url: "https://github.com/wuyu2015/XCTestDelayPrinter", from: "1.0.2")使用 pr 延迟打印:
import XCTestDelayPrinter
func testExample() {
pr("所有测试完成后打印")
}
func testImmediatePrint() {
pr("立即打印", force: true)
}使用 delay 延迟打印(使用⌘+U 运行测试时,闭包不会执行):
import XCTestDelayPrinter
func testDelayedReturnString() {
delay {
"Hello World!"
}
}
func testDelayedComputation() {
delay {
print("Sleep start")
// 1
sleep(1)
print(1)
// 2
sleep(1)
print(2)
// 3
sleep(1)
print(3)
return "Sleep end"
}
}MIT License