2015-12-16 31 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 

ERROR: 語法錯誤(S) 單位按鈕和DataCheck相互引用。 在JScript單元中不允許交叉引用。

錯誤locationL 單位: 「按鈕」 行4列:1

嗯.....線4沒有數據! SIGROWL

從按鈕中刪除實用程序並且沒有錯誤,但是不能訪問Button必不可少的功能。

任何想法??

回答

2

這意味着,公用事業單位引用DataCheck單元:
公用事業 - > DataCheck - >按鈕 - >公用事業

還可能有更多的單元在該鏈:
公用事業 - > [神祕單元A] - > [神祕單位B] - > DataCheck - >按鈕 - >公用事業

檢查整個參考鏈。

另外,還可以考慮使用Script Extensions爲庫代碼。

+0

好的。我在圍繞這個概念時遇到了一些麻煩。我在一個完全不同的單位發現了違規功能。如果我將它移動到DataCheck,則不會出錯。如果我將它移動到任何其他單元並添加對DataCheck的引用,則會出現錯誤。所以,如果我理解正確,那麼流動實用程序> ExButton> DataCheck> Button> Utilities的參考是問題? (ExButton是違規功能的原始位置) – Brandy

+1

是的,這是一個明確的循環參考情況。爲了避免這種情況,你需要有庫單元(例如你的案例中的實用工具),它們不會引用任何其他單元。如果你有一些屬於某個特定單位(例如A)的常量或結構,並且應該被實用單位使用,你需要將這些常量/結構移動到一個沒有任何引用的新單元(例如A_Utils),並且從兩個參考A和公用事業單位。這是一種非常常見的情況,例如,在C++中,您正面臨着相同的行爲。 –

+0

非常感謝您的幫助! – Brandy