2

xcodebuild用来在 CI 中测试我的应用程序。我这样调用它:

xcodebuild test -project myapp.xcodeproj -scheme myappTests -destination 'platform=iOS Simulator,name=iPhone 8,OS=14.4'

Logger使用from记录的文本OSLog不会显示在调试级别。因此,如果我的测试中有类似的东西,它不会显示在 的输出中xcodebuild,但我希望看到:

Logger(subsystem: "a", category: "b").debug("something")

我可以将日志记录级别设置xcodebuild为调试吗?显示具有错误级别的消息。

我尝试了设置xcodebuildDebugLogLevel=3,但这给了我相同的日志信息。

4

1 回答 1

0

Logger 不会将debug(和trace)消息打印到输出,因为模拟器上子系统的日志级别是INFO.

您可以通过以下步骤进行检查:

  1. 找到您用于测试的模拟器 UDID:
$ xcrun simctl list
...
-- iOS 15.2 --
    iPhone 8 (C1D16369-D358-438E-8395-D01C2DE55980) (Shutdown) 
...
  1. 如果需要,启动它
$ xcrun simctl boot C1D16369-D358-438E-8395-D01C2DE55980
  1. 检查子系统名称的日志级别:
$ xcrun simctl spawn C1D16369-D358-438E-8395-D01C2DE55980 log config --subsystem <your-subsystem-name> --status
Mode for '<your-subsystem-name>'  INFO PERSIST_DEFAULT

要将当前日志级别更改为DEBUG您可以使用下一个命令:

$xcrun simctl spawn C1D16369-D358-438E-8395-D01C2DE55980 log config --subsystem <your-subsystem-name> --mode level:debug

再检查一遍:

xcrun simctl spawn C1D16369-D358-438E-8395-D01C2DE55980 log config --subsystem <your-subsystem-name> --status 
Mode for '<your-subsystem-name>'  DEBUG PERSIST_DEFAULT

现在,您的测试xcodebuild必须在输出中包含所有调试(和跟踪)消息。

注意:即使从 abobe 更改后,Console.app 也不提供调试/跟踪消息,这是模拟器的老已知问题。

于 2022-01-28T13:31:18.677 回答