【问题标题】:Xcode iOS testsuite NSLog output missingXcode iOS 测试套件 NSLog 输出丢失
【发布时间】:2015-01-02 07:59:28
【问题描述】:

我正在使用 Xcode 6 开发 iOS 应用程序,并尝试在 Xcode 中运行测试套件。我可以运行测试,但看不到 NSLog 语句的输出位置。它们不在输出面板中。

如何找到输出?

@interface ISTest : XCTestCase
@end

@implement ISTest
- (void) setUp {
    [super setUp];
}

- (void) tearDown {
    [super tearDown];
}

- (void) testExample {
    NSLog(@"Where does this go???");
}

- (void) testPerformanceExample {
    [self measureBlock^{
    }];
}
@end

【问题讨论】:

  • 所有日志语句都应该出现在调试区域。你能发布一个示例测试用例吗?
  • @JAL 调试区在哪里?
  • 调试区域是 Xcode 中的下部视图,当您遇到断点时,它会显示控制台和范围内的变量。通过单击 Xcode 右上角底部带有蓝色矩形的方形按钮,确保此视图已打开。
  • 不知怎的,我现在可以在 All Output 中看到输出了……不知道之前发生了什么……谢谢。
  • 我在下面添加了我的答案。如果对您有帮助,请随时将其标记为已接受。

标签: ios xcode unit-testing output


【解决方案1】:

在 Xcode 的调试区域(下视图)中检查控制台。要打开此视图,请单击 Xcode 右上角底部带有蓝色矩形的方形按钮。

编辑:为什么投反对票?日志语句出现在我的调试区域中。

测试:

- (void)testLoginViewControllerViewExists {
    NSLog(@"Testing Login View Controller");
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Login" bundle:nil];
    CSLoginViewController *loginVC = [storyboard instantiateViewControllerWithIdentifier:
                                      @"loginVC"];
    XCTAssertNotNil([loginVC view], @"loginVC should contain a view");
}

输出:

Test Case '-[AppTests testLoginViewControllerViewExists]' started.
2014-11-06 15:52:00.175 App[14870:2071450] Testing Login View Controller
Test Case '-[AppTests testLoginViewControllerViewExists]' passed (0.001 seconds).

【讨论】:

  • 确保异步处理正确,否则完成块中的任何 NSLog 都不会输出。
  • OP 在他的应用程序中寻找 NSLog() 语句,而不是测试代码。运行调试而不是测试时通常会看到的内容。
【解决方案2】:

测试中的日志输出不会发送到控制台。

如果您想查看您的日志,它们位于构建输出中。

【讨论】:

  • 应用代码中的 NSLog() 输出不存在。
【解决方案3】:

如果您想在输出控制台上看到您的测试中的消息或字符串,请使用printf 而不是NSLog

例如:printf("%s", [yourNSString UTF8String]);

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多