我試圖打破我的UIAutomation測試腳本成塊,使之可以運行他們在同一時間或全部一個拼湊。所以我有一個結構:在UIAutomation鏈接#imports的JavaScript
全tests.js:
#import "tab-dates.js"
#import "tab-temperatures.js"
製表dates.js:
#import "../../../Libraries/tuneup_js/tuneup.js"
#import "dpl_assertions.js"
var target = UIATarget.localTarget();
var app = target.frontMostApp();
test("Verify date view is shown", function() {
assertEquals(tabBar.selectedButton().name(), "Date");
});
這兩個生活在同一個目錄中,並導入到自動化跟蹤文件,也位於同一目錄中。
當我直接運行製表dates.js,一切都很好。找到tuneup.js,路徑是正確的,測試通過。但是,當我嘗試運行全tests.js,我得到:
Script threw an uncaught JavaScript error: Can't find variable: test on line 8 of tab-dates.js
這不是一條直路的問題,因爲如果我編輯腳本打破路徑,我收到了不同的錯誤,明確表示「沒有文件發現」。
據我所知,鏈接進口是應該工作 - 我的意思是,這是tuneup.js的全部(https://github.com/alexvollmer/tuneup_js):
#import "assertions.js"
#import "lang-ext.js"
#import "uiautomation-ext.js"
#import "screen.js"
#import "test.js"
#import "image_assertion.js"
所以我有一種奇怪的局面是
- 製表dates.js進口tuneup.js進口test.js => OK
- 全tests.js進口製表dates.js進口tuneup.js進口test.js => NOT OK
這是怎麼回事?
這是UI自動化中的一個已知錯誤:http://www.openradar.me/12567752 –
一個建議 - 忘記UI自動化,永不回頭。 UI自動化不足以編寫穩定的測試,如果測試不穩定,即使編寫它們也沒有意義。 – Sulthan