今天,我在使用Instruments中的Automation工具,但是编写工作测试时遇到了问题。以下示例将以Issue: Script ended without explicting closing this test退出。是的,该消息确实表示明确。我认为这是Xcode的最新版本中引入的错字。这是我第一次尝试使用此工具。将cellCount设置为6会导致通过,但一切都会给我“脚本结束”消息。我做错了还是自动化工具存在错误?

UIALogger.logStart("Start Simple Test");
var target = UIATarget.localTarget();
var cellCount = 7;

UIALogger.logMessage("cell count: " + cellCount);

if (cellCount != 6) {
    UIALogger.logFail("Failed");
}

UIALogger.logPass("Passed");

最佳答案

我认为这是您错误地关闭了日志组。当您说logStart()时,您将在乐器中开始一个日志组,之后使用logMessage()logError()进行日志记录的所有内容都将包含在该组中。

您可以使用logFail()logPass()来关闭组,这看起来像是您尝试做的,但是您只能 call 其中一个。您需要在其中的else子句来调用logPass(),如下所示:

if (cellCount != 6) {
    UIALogger.logFail("Failed");
} else {
    UIALogger.logPass("Passed");
}

奇怪的是,当我将您的代码片段粘贴到UI Automation中时,我没有遇到您提到的问题错误。它只是将两个日志组打印到跟踪日志中。尝试使用如上所述的else子句,看看它是否有效。

10-06 13:10