Предположим во время работы скрипта нам необходимо узнать, чем именно выполняюся в данный момент тесты (TestComplete’ом или TestExecute’ом), и в зависимости от этого выполнить разные действия. Стандартной функции для этого нет, поэтому придется написать свою, используя возможности стандартной библиотеки.
Наша функция будет выглядеть так (JScript):
function getCurrentTool()
{
var fileName = aqFileSystem.GetFileName(BuiltIn.ParamStr(0));
return fileName.split('.')[0];
}
или так (VBScript):
Function GetCurrentTool Dim FileName, ToolName FileName = aqFileSystem.GetFileName(BuiltIn.ParamStr(0)) GetCurrentTool = Split(FileName, ".")(0) End Function
С помощью метода BuiltIn.ParamStr мы получаем нулевой параметр командной строки текущей утилиты (например, “C:\Program Files\Automated QA\TestComplete 8\Bin\TestComplete.exe”);
Далее с помощью метода aqFileSystem.GetFileName мы получаем из полного пути только имя файла (например, TestComplete.exe);
Затем с помощью метода split мы получаем только имя файла без расширения (странно, что подобной функции нет в стандартной библиотеке TestComplete).
В результате функция нам вернет либо TestComplete, либо TestExecute, что нам и требовалось.
ЗЫ Конечно, эту функцию можно написать в одну строку, здесь мы разбили её на две строки для наглядности.