2015-12-16 11 views
1

Я использую TestComplete 11 с кодом JScript в скриптах - без тестов на ключевые слова.TestComplete - неверная ошибка перекрестных ссылок

У меня ошибка перекрестной ссылки неверная. Я проверил все объявления USEUNIT ссылочных единиц, и они НЕ ссылаются друг на друга, но я все время получаю эту ошибку.

EX:

Unit DataCheck: 
//USEUNIT Button 
//USEUNIT Lots of other Units 

Unit Button 
//USEUNIT Input 
//USEUNIT Map 
//USEUNIT Utilities 

ОШИБКА: Ошибка синтаксиса (ы) Блоки кнопки и DataCheck ссылаются друг на друга. Перекрестные ссылки не допускаются в единицах JScript.

Ошибка locationL Единица измерения: "Кнопка" Линия 4 Колонка: 1

Эммм ..... линия 4 нет данных! SIGROWL

Удалить Утилиты с кнопки и не допускать ошибок, но тогда к функции, недоступной для кнопки, невозможно получить доступ.

Любые идеи?

ответ

2

Это означает, что блок Utilities ссылается на блок DataCheck:
Утилиты -> DataCheck -> кнопка ->Утилиты

Также возможно, что есть больше единицы в этой цепочке:
Утилиты -> [Загадочный Unit A] -> [Загадочный Unit B] -> DataCheck -> Кнопка ->Утилиты

Проверьте всю эталонная цепь.

Кроме того, вы можете использовать Script Extensions для кода библиотеки.

+0

Хорошо. У меня возникают некоторые проблемы, обертывающие мою голову вокруг этой концепции. Я обнаружил оскорбительную функцию в совершенно другом модуле. Если я переведу его в DataCheck, ошибок не будет. Если я переведу его в любое другое подразделение и добавлю ссылку на DataCheck, ошибка. Итак, если я правильно понимаю, ссылаются те потоки Utilities> ExButton> DataCheck> Button> Utilities? (ExButton является исходным расположением функции нарушения) – Brandy

+1

Да, это четкая круговая эталонная ситуация. Чтобы этого избежать, вам необходимо иметь библиотечные модули (например, служебные программы в вашем случае), которые не ссылаются ни на какие другие единицы. Если у вас есть некоторые константы или конструкции, принадлежащие определенному модулю (например, A) и должны использоваться модулем Utilities, вам необходимо переместить эти константы/конструкции на новый блок без каких-либо ссылок (например, A_Utils) и ссылаться на них как с обоих A и Utilities. Это довольно распространенная ситуация, и, например, в C++ вы сталкиваетесь с таким же поведением. –

+0

Большое вам спасибо за помощь! – Brandy

 Смежные вопросы

  • Нет связанных вопросов^_^