gpt4 book ai didi

swift - 调试窗口不显示打印语句

转载 作者:行者123 更新时间:2023-12-05 01:38:44 25 4
gpt4 key购买 nike

我已经能够在我的应用程序的调试窗口中看到打印语句。当我创建一个“模拟”程序(小型试用应用程序)来了解 Swift 测试时,我的 FirstTests 文件夹下的 LifecycleTests.swift 文件中的任何打印语句都没有显示在调试窗口中。

import XCTest

class LifecycleTests: XCTestCase {

override class func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
print("In class setUp.")
// NSLog("In class setUp.")
}

override class func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
print("In class tearDown.")
// NSLog("In class tearDown")
}

override func setup() {
print("In setup.")
// NSLog("In setup")
}

override func tearDown() {
print("In tearDown.")
// NSLog("In tearDown.")
}

func testExample() {
print("Starting test.")
// NSLog("Starting test.")

addTearDownBlock {
print("In first tearDown block.")
// NSLog("In first tearDown block.")
}

// print("In middle of test.")
NSLog("In middle of test.")

addTearDownBlock {
print("In second tearDown block.")
// NSLog("In second teardown block.")
}

print("Finishing test.")
// NSLog("Finishing test.")
}

func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}

最佳答案

您一次只能从一个目标获取控制台输出。您的控制台输出默认设置为来自您的应用程序目标,而不是您的测试目标。

如果您只是运行一个包含 print 语句的测试,您将看不到任何调试器输出:

enter image description here

该测试有一个 print 语句,但我们运行了它,但控制台中没有显示任何内容。

好的,但现在让我们让控制台看到来自测试目标的输入。为此,请在测试中放置一个断点:

enter image description here

我们越过 print 语句,它会打印到控制台,以及有关测试的许多其他有用信息:

enter image description here

有趣的是,一旦你使用了这个技巧,你就可以把断点拿走。测试目标仍然是控制台源,直到您再次运行应用程序本身。

这个技巧很奇怪,但它似乎是唯一的方法。 Apple 实际上在他们的 docs 中以一种暗示的方式承认了这一点。他们说:

if you have been actively engaged in debugging, any output from the debugging session also appears [in the console]

显然“积极参与调试”意味着您在测试中设置了断点。

关于swift - 调试窗口不显示打印语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com