我可以将_Assert写入控制台而不是消息框吗?

时间:2015-06-05 18:38:54

标签: scripting automated-tests autoit

我正在AutoIt中编写一个脚本来测试Windows应用程序,我正在使用_Assert函数来验证某些操作。

在文档中我发现有一个参数可以说明如果断言失败,脚本是否应该结束,这很好,因为在某些情况下我希望脚本继续,但不幸的是它仍然被一条消息停止框。

我可以以某种方式覆盖_Assert函数,只在某些断言失败时才打印到控制台,这样脚本可以在没有用户交互的情况下继续吗?

1 个答案:

答案 0 :(得分:1)

使用_Assert()无法实现所需行为。但是,_Assert()可以调整来执行此操作(由MsgBox()替换ConsoleWrite()):

Func _AssertCustom($sCondition, $bExit = True, $nCode = 0x7FFFFFFF, $sLine = @ScriptLineNumber, Const $iCurERR = @error, Const $iCurEXT = @extended)
    Local $bCondition = Execute($sCondition)
    If Not $bCondition Then
        ConsoleWrite("Assertion Failed (Line " & $sLine & "): " & $sCondition & @CRLF)
        If $bExit Then Exit $nCode
    EndIf
    Return SetError($iCurERR, $iCurEXT, $bCondition)
EndFunc

最好声明为新函数(不要更改Debug.au3)。