我正在AutoIt中编写一个脚本来测试Windows应用程序,我正在使用_Assert函数来验证某些操作。
在文档中我发现有一个参数可以说明如果断言失败,脚本是否应该结束,这很好,因为在某些情况下我希望脚本继续,但不幸的是它仍然被一条消息停止框。
我可以以某种方式覆盖_Assert函数,只在某些断言失败时才打印到控制台,这样脚本可以在没有用户交互的情况下继续吗?
答案 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)。