2016-12-04 31 views
0

我有一個donejs插件(https://github.com/riescorp/donejs-typeahead),我決定使用funcunit(http://funcunit.com/)進行GUI交互測試。在我的電腦上一切正常,在控制檯上運行測試頁面(http://localhost:8080/test/test.html)或運行npm testFuncunit的開放導致在線CI服務,如特拉維斯和CircleCI

問題是,在CircleCI或Travis CI上運行測試時,測試無法通過。錯誤類似於「未及時加載xxxxx頁!」(見下面的例子)。

有一個簡化的分支來顯示正在發生的事情(https://github.com/riescorp/donejs-typeahead/tree/testing-open),你可以克隆它,然後運行npm installnpm test,你會看到它的工作原理。

你可以在這裏檢查CircleCI錯誤的詳細信息:

特拉維斯生成相同的錯誤,但因爲我的測試會失敗firefox和chrome(在travis中不支持chrome)

示例錯誤:

1) QUnit "test/test.html" on Chrome 53.0.2785/Linux 0.0.0: donejs-typeahead GUI Interaction DEBUG TESTS DEBUG 1 Page //../src/donejs-typeahead.html not loaded in time!: Error: Expected true but was false at Object.ok (http://localhost:3996/node_modules/steal-qunit/node_modules/qunitjs/qunit/qunit.js:2194:12) at Object.assertOK (http://localhost:3996/node_modules/funcunit/browser/adapters/qunit.js:12:10) at http://localhost:3996/node_modules/funcunit/browser/queue.js:168:27

回答

1

通過設置frameMode: true,您可以讓Funcunit在iframe中打開新窗口。這是DoneJS應用程序生成器sets up

+0

添加'frameMode:true'幫助。測試仍然沒有通過('等待#debug-me的大小,實際值:1'),所以我不得不改變方式來檢測結果,而不是使用'.visible()'現在我使用'.exists( ).then()' – nico

+0

這隻發生在舊版本的Firefox和Chrome上,但我的猜測是這些版本上的隱藏對象是通過縮小尺寸來實現的。 – nico