我目前正在测试完成的测试运行期间自动检测测试信息。
所以我的要求就是这个。
有没有办法从OnLogCheckpoint事件或其他方式获取从脚本执行对象检查点的对象/别名。
答案 0 :(得分:2)
当检查点消息发布到日志并且现在执行检查点时,会触发 OnLogCheckpoint 事件。有一个重要区别:在第一种情况下,事件的目标是日志消息,而不是对象树中的实际对象。
但是,在一般情况下,此类消息包含您需要的对象名称。因此,您可以解析日志消息以获取对象的名称。下面是一个示例脚本(JScript),它为Property checkpoint消息执行此操作。我没有使用其他检查点类型对其进行测试,但是这些代码可能无需任何更改或进行最少的更改即可使用它们。
function GeneralEvents_OnLogCheckpoint(Sender, LogParams)
{
Log.Message("Object name: " + getObjectNameFromCheckpointMessage(LogParams.StrEx));
}
function getObjectNameFromCheckpointMessage(str)
{
var re = /<th class='BoldLineTop HB'>Object name:<\/th>\s+<th class='BoldLineTop'>((\w|\(|\)|\.|\s|,|-|")+)<\/th>/;
var m = re.exec(str);
if (m === null)
return "";
return m[1];
}
更新
以下示例脚本显示如何获取使用Object检查点验证的对象的名称。获得的名称是一个简短的名称,似乎没有办法获得全名。
function GeneralEvents_OnLogCheckpoint(Sender, LogParams)
{
Log.Message("Object name: " + getObjectNameFromObjectCheckpointMessage(LogParams.StrEx));
}
function getObjectNameFromObjectCheckpointMessage(str)
{
var re = /Click here to show or modify data of the checkpoint \"(\w+)\"\./;
var m = re.exec(str);
if (m === null)
return "";
return Objects.StoredObject(m[1]).Name;
}