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

Фотография

Вопросы по ТС7


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

#41 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 31 августа 2009 - 10:03

Здравствуйте.

Дерево в вашем приложении, по всей видимости, долго обновлятеся, и когда ТС пытается с ним работать, оно ещё не готово. В этом случае надо найти какой-нибудь признак, свидетельствующий о том, что дерево готово, и в скрипте проверять этот признак чтобы задержать выполнение на нужное время.
  • 0
С уважением,
Дмитрий

#42 shaen

shaen

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Den

Отправлено 31 августа 2009 - 14:16

Я пробовал увеличить время, не помогло. Мне удалось добится правильной работы с tree путем отключения Java Systems Controls Support и Java Controls Support. Отключил при записи, после этого находит все отлично без всяких задержек.
  • 0

#43 NatalyR

NatalyR

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

  • Members
  • Pip
  • 34 сообщений

Отправлено 02 сентября 2009 - 07:39

В TestComplete 6.4 замечательно работала следующая функция:

Function IsProcessResponding(p)
Dim process
Set process = dotNET.System_Diagnostics.Process.GetProcessById(p.ProcessId)
IsProcessResponding = process.Responding
End Function

Перешла на TestComplete 7.0
В ObjectBrowser указано, что проперти ProcessId заменен на Id.
Поменяла:

Function IsProcessResponding(p)
Dim process
Set process = dotNET.System_Diagnostics.Process.GetProcessById(p.Id)
IsProcessResponding = process.Responding
End Function

Все равно не работает.

Теперь вижу, что в версии TestComplete 7.0 из иерархии вообще исчез Process.
  • 0

#44 modbear

modbear

    Специалист

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

Отправлено 02 сентября 2009 - 08:41

В TestComplete 6.4 замечательно работала следующая функция:

Function IsProcessResponding(p)
Dim process
Set process = dotNET.System_Diagnostics.Process.GetProcessById(p.ProcessId)
IsProcessResponding = process.Responding
End Function

Перешла на TestComplete 7.0
В ObjectBrowser указано, что проперти ProcessId заменен на Id.
Поменяла:

Function IsProcessResponding(p)
Dim process
Set process = dotNET.System_Diagnostics.Process.GetProcessById(p.Id)
IsProcessResponding = process.Responding
End Function

Все равно не работает.

Теперь вижу, что в версии TestComplete 7.0 из иерархии вообще исчез Process.

Добавьте в список CLR Bridge в свойствах проекта ассемблю System.dll.
  • 0

#45 NatalyR

NatalyR

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

  • Members
  • Pip
  • 34 сообщений

Отправлено 03 сентября 2009 - 06:16

В TestComplete 6.4 замечательно работала следующая функция:

Function IsProcessResponding(p)
Dim process
Set process = dotNET.System_Diagnostics.Process.GetProcessById(p.ProcessId)
IsProcessResponding = process.Responding
End Function

Перешла на TestComplete 7.0
В ObjectBrowser указано, что проперти ProcessId заменен на Id.
Поменяла:

Function IsProcessResponding(p)
Dim process
Set process = dotNET.System_Diagnostics.Process.GetProcessById(p.Id)
IsProcessResponding = process.Responding
End Function

Все равно не работает.

Теперь вижу, что в версии TestComplete 7.0 из иерархии вообще исчез Process.

Добавьте в список CLR Bridge в свойствах проекта ассемблю System.dll.


Ассамблея System.dll уже добавлена, причем и для TestComplete 6.4 и для TestComplete 7 используется один и тот же файл System.dll.
  • 0

#46 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 04 сентября 2009 - 13:34

Здравствуйте.

Когда я добавляю System.dll версии 2.0.0.0 в 'CLR Bridge' проекта, у меня ваш код работает без проблем. Попробуйте удалить ссылку на System.dll из проекта, а потом добавить её ещё раз.
  • 0
С уважением,
Дмитрий

#47 shaen

shaen

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Den

Отправлено 28 октября 2009 - 14:19

Коллеги, а есть ли в ТК7 опция, которая позводит не выполнят некоторые тесты. Т.е. если у меня есть тест-сьют на кучу тестов, я хочу временно не выполнять некоторые, но видеть в логе, что они были игнорированы.
  • 0

#48 Discovery

Discovery

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

  • Members
  • Pip
  • 4 сообщений
  • Город:Moscow


Отправлено 29 октября 2009 - 07:21

Здравствуйте,

Подскажите, пожалуйста, как в проектах ТС7 ПРАВИЛЬНО организовать список глобальных НЕИЗМЕНЯЕМЫХ констант при написании скриптов на JScript?
Встроенный в ТС функционал совершенно не подходит, ибо позволяет менять даже Persistent variable направо и налево и измененные значения при переходе из юнита в юнит сохраняются.

Пытался создать отдельный юнит с глобальными константами (планировал потом кидать ссылки на него в другие проекты/группы проектов), но при работе с ним ТС7 кидает ошибки:

Syntax error
At "const XMLop = "C:\\XMLop.txt";"
error 100: SYNTAX ERROR while processing "const"
Unit: "uConsts" Line:1 Column: 6

Expected token yy_eof or Identifier or DecimalLiteral
or HexIntegerLiteral or OctalIntegerLiteral or StringLiteral
or RegLiteral or EXCLAM or TILDE


на строку такого вида:
const XMLop = "C:\\XMLop.txt";
или такого:
const XMLop : String = "C:\\XMLop.txt";
Хотя именно такую форму объявления констант предлагает MSDN: http://msdn.microsof...yks(VS.71).aspx
  • 0
Я ничего не видел и ничего не слышал... И даже если я там был, то я спал

#49 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 29 октября 2009 - 08:52

Здравствуйте.

shaen:
Можно убрать галку у теста в редаторе Test Items, но в логе тогда об этом тесте тоже не будет ни слова сказано.

Discovery:
В JScript нет возможности создвать константы. Тот синтаксис, который вы нашли, относится к JScript.NET, а не к JScript. Это разные языки.

Если вы просто боитесь ошибочно перетереть значение переменной, то получайте нужное значение через функцию, а не через переменную:

function getXMLop()
{
  return "C:\\XMLop.txt";
}

  • 0
С уважением,
Дмитрий

#50 modbear

modbear

    Специалист

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

Отправлено 29 октября 2009 - 09:18

Discovery,

Еще чтобы не случайно не перепутать глобальные "константы" и локальные переменные, можно объявить "константы" внутри специального класса или объекта. Имя класса/объекта будет своего рода нейспейсом для "констант":

Например:
function Constants() {}
Constants.XMLOp = "C:\\XMLop.txt";
...

Log.Message(Constants.XMLOp);
или так:
var Constants = {
  XMLOp : "C:\\XMLop.txt"
};
...

Log.Message(Constants.XMLOp);

  • 0

#51 Discovery

Discovery

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

  • Members
  • Pip
  • 4 сообщений
  • Город:Moscow


Отправлено 29 октября 2009 - 12:40

Dmitry N, modbear
Благодарю Вас за помощь

Правда ни один из вариантов modbear не подошёл :(
Всё равно при выполнении проекта из двух юнитов, во второй юнит приходило измененное в первом значение глобальной переменной Constants.XMLOp
Вариант Dmitry N мне кажется более правильным, потому что он на корню убивает саму возможность изменения "глобальной переменной"

P.S.: И всё же странно то, что пример объявления констант содержится именно в разделе JScript Language Tour MSDN'a, а дот Нету там посвящен JScript .NET Language Reference, с отдельными примерами объявления констант - http://msdn.microsof...47t(VS.71).aspx
:smile:
  • 0
Я ничего не видел и ничего не слышал... И даже если я там был, то я спал

#52 modbear

modbear

    Специалист

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

Отправлено 29 октября 2009 - 12:56

P.S.: И всё же странно то, что пример объявления констант содержится именно в разделе JScript Language Tour MSDN'a, а дот Нету там посвящен JScript .NET Language Reference, с отдельными примерами объявления констант - http://msdn.microsof...47t(VS.71).aspx
:crazy:

К сведению: этот раздел, включая JScript Language Tour, полностью посвящен JScript .NET. Описание обычного JScript находится в разделе JScript (Windows Script Technologies).
  • 0

#53 shaen

shaen

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Den

Отправлено 05 ноября 2009 - 14:29

Не знает ли кто-нибудь как решить следующу проблему. Есть набор тестов для ТК7, когда писали все работало. При попытке запустить их через какое-то время ТК7 присваивает объектам другие индескы и не находит их. Индексы явно стоят в коде (JS). Как решить? Переписывать тесты нет возможности, их очень много.
  • 0

#54 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 19 ноября 2009 - 08:49

Здравствуйте.

Скорее всего, что-то изменилось в вашем приложении за это время, порядок и количество объектов стало другим, и ТС приходится использовать другие методы. Вообще, для тогда чтобы легко справляться с такими проблемами, можно использовать Name Mapping. Если тесты созданы с использованием Name Mapping, то при изменении имён объектов надо будет лишь поправить дерево Name Mapping, а тесты трогать не придётся.

Если при записи тестов вы не использовали Name Mapping, то вам придётся править тесты. Вы можете использовать диалог Find/Replace (Ctrl-H) чтобы ускорить этот процесс.
  • 0
С уважением,
Дмитрий

#55 shaen

shaen

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Den

Отправлено 19 ноября 2009 - 14:42

Dmitry N, спасибо за ответ. К сожалению, тесты были записаны без использования Name Mapping. Это долгая история почему так сделали (часть тестов из болеее ранних версий и т.д.).
Если я правлю тесты (изменяю индексы), то я могу добится работоспособности только на конкретном сеансе. После перезагрузки все сначала. Похоже прийдется переписывать, другого выхода нет. Все-таки немного странно. В тестируемом приложении и тесте (JS-коде) ничего не менялось, есть допустим 5 одинаковых объектов. В одном случае ТК7 нумерует их как 5,4,2,1,3 и я, заменив индексы, делают тест проходящим, а при следующем запуске (после перезагрузки) индексы другие.
  • 0

#56 VitalyD

VitalyD

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

  • Members
  • PipPipPipPip
  • 285 сообщений
  • Город:Санкт-Петербург

Отправлено 20 ноября 2009 - 08:29

Dmitry N, спасибо за ответ. К сожалению, тесты были записаны без использования Name Mapping. Это долгая история почему так сделали (часть тестов из болеее ранних версий и т.д.).
Если я правлю тесты (изменяю индексы), то я могу добится работоспособности только на конкретном сеансе. После перезагрузки все сначала. Похоже прийдется переписывать, другого выхода нет. Все-таки немного странно. В тестируемом приложении и тесте (JS-коде) ничего не менялось, есть допустим 5 одинаковых объектов. В одном случае ТК7 нумерует их как 5,4,2,1,3 и я, заменив индексы, делают тест проходящим, а при следующем запуске (после перезагрузки) индексы другие.


Как вариант причина может быть в том что контролы грузяться в зависимоти от действий (например таб контролу нумерует табы в зависимости от их открытия - если открыть после первой сразу n-ую вкладку, то она будет иметь индекс 2 а не n.). Ну и таких примеров можно много придумать...
  • 0

#57 Narayan

Narayan

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

  • Members
  • Pip
  • 4 сообщений

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

Здравствуйте!
Не знала куда написать, попробую в эту тему.
Есть два сьюта. Один сьют работает совершенно нормально, во втором же ничего не хочет записываться: создаются пустые функции без автоматически созданного кода... Может, нужно где-то галочку поставить или еще что-то в этом роде?
  • 0

#58 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 04 января 2010 - 09:50

Здравствуйте.

Сравнивайте настройки сьюит/проектов. Рекомендую обратить внимание на настройку проекта 'Open Applications | Process Filter'.
  • 0
С уважением,
Дмитрий

#59 vignesgangboard

vignesgangboard

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

  • Members
  • Pip
  • 1 сообщений
  • ФИО:vignesgangboard

Отправлено 09 ноября 2016 - 04:52

continue passes control to the next iteration of a for or while loop. It skips any remaining statements in the body of the loop for the current iteration. The program continues execution from the next iteration.continue applies only to the body of the loop where it is called. In nested loops, continue skips remaining statements only in the body of the loop in which it occurs.

 

Android Training in Chennai

Informatica Training 

Hadoop Online Training


  • 0

#60 Prospero

Prospero

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

  • Members
  • Pip
  • 5 сообщений

Отправлено 25 июля 2019 - 12:24

Здравствуйте.

Написала в ТС скрипт, который генерирует строку из букв с регулярным выражением. С латиницей проблем нет, а вот кириллицу он не понимает. ТС сразу выдаёт ошибку на эти буквы.

Код на латинице:

var name = "name"+ (Math.random() / +new Date()).toString(36).replace(/[^a-z]+/g, '');

Вот это уже не работает:

var name = "name"+ (Math.random() / +new Date()).toString(36).replace(/[^а-я]+/g, '');

Как-то можно обойти или надо писать по-другому?


  • 0


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

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