1) К открытому TeatComplete'у подключиться можно только через COM-интерфейс: получить объект TestComplete.TestCompleteApplication и позвать у него метод Integration.RunRoutine (если функция без параметров) или Integration.RunRutineEx (если функция с параметрами). Примеры: Calling Script Routines via COM.
2) Если подключаетесь по COM'у - запускайте функцию с помощью метода Integration.RunRoutineEx.
Если запускаете через cmd - можно передавать данные через командную строку. Т.е. по-идее можно попробовать сделать так:TestComplete.exe "C:\Work\MySuite.pjs" /r /p:Project1 /u:Unit1 /rt:test /a:"Hello, world" function test(a) { if (typeof a === "undefined") { a = <читаем значение параметра "a" из командный строки> } Log.Message(a); }Спасибо! По второму пункту все работает.
По первому пишет, что Запрошенная операция требует повышения. Погуглил - перезашел через администратора, запускаю из командной строки, запущенной от администратора и все равно недостаточно прав
разобрался, отлично работает. Вот подсказка для будущих поколений, работает при запущенном TestExecute. Не тратится время на launch и закрытие
Sub MySub ' Initialize variables sProjectNameFileName = "Z:\TestComplete\Autotests\Autotests.pjs" sProjectName = "Autotests" sUnitName = "StartHere" sRoutineName = "runFromPy" ' Creates the application object Set TestCompleteApp = GetObject(,"TestExecute.TestExecuteApplication.11") ' Obtains the integration object Set IntegrationObject = TestCompleteApp.Integration ' Opens the project IntegrationObject.OpenProjectSuite sProjectNameFileName ' Runs the routine IntegrationObject.RunRoutine sProjectName, sUnitName, sRoutineName Set TestCompleteApp = nothing Set IntegrationObject = nothing End Sub MySub