Перейти к содержимому

Фотография

Работа с TestComplete из cmd


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 24 декабря 2015 - 08:58

Здравствуйте, есть пара вопросов

 

1. Можно ли запускать скрипты проекта из командной строки при открытом Тесткомплите?

Возможность, описанная в документации, позволяет лишь с запуском тесткомплита.

Пример доки http://automated-360...e-command-line/

 

2. Можно ли передавать параметры?

Я хочу запустить 

function test(a) {

   Log.Message(a);

}

 

P.s. пока что как единственный вариант второго пункта вижу сохранение данных в файл и чтение их из скрипта


  • 0

#2 Rebz

Rebz

    Опытный участник

  • Members
  • PipPipPipPip
  • 471 сообщений


Отправлено 24 декабря 2015 - 09:39

delete


Сообщение отредактировал Rebz: 24 декабря 2015 - 09:40

  • 0

#3 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 25 декабря 2015 - 09:04

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);
}

  • 0

#4 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 28 декабря 2015 - 10:20

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);
}

Спасибо! По второму пункту все работает.

 

По первому пишет, что Запрошенная операция требует повышения. Погуглил - перезашел через администратора, запускаю из командной строки, запущенной от администратора и все равно недостаточно прав


  • 0

#5 Stanislav_alphaopen

Stanislav_alphaopen

    Новый участник

  • Members
  • Pip
  • 68 сообщений
  • ФИО:Васенков Станислав
  • Город:Москва

Отправлено 28 декабря 2015 - 14:33

 

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

  • 1


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных