Чем выполняется текущий скрипт (TestComplete или TestExecute)?

Предположим во время работы скрипта нам необходимо узнать, чем именно выполняюся в данный момент тесты (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, что нам и требовалось.

ЗЫ Конечно, эту функцию можно написать в одну строку, здесь мы разбили её на две строки для наглядности.