hifive / hifivemain

main repository
http://www.htmlhifive.com/
Other
40 stars 10 forks source link

coexistのテストが失敗することがある #280

Closed fukudayasuo closed 10 years ago

fukudayasuo commented 10 years ago

h5.coexist()の挙動を確認する以下の2つのテストが、時々失敗することがあります。

① 『sa-ios_1.9.0_dev.h5#coexist.バージョンが同じものを2重読み込みする。』 ② 『sa-ios_1.9.0_dev.h5#coexist.window.h5にhifiveと無関係なオブジェクトがすでに存在するときに、h5.jsを読み込む。 』

①では同じバージョンなのに違うバージョン合判定されて、coexistの戻り値がundefinedになっていない、 ②でも同じバージョンのものを読んでいるはずなのに少し古いバージョンになっています。

②で失敗するときは、以下のようなアサート文で失敗しています。

[FAIL]h5.coexist()の戻り値が元のh5と同じ。
Expected: "Nightly_2014-03-14_14-51-38-828"Result: "Nightly_2014-03-14_15-21-39-164"Diff: "Nightly_2014-03-14_14-51-38-828" "Nightly_2014-03-14_15-21-39-164"

①も②も、読みこむh5.jsが、想定したバージョンと違うためにテストが失敗しているようです。

いずれのテストも、h5.jsはh5.u.loadScript()で、force:true指定をし、キャッシュを使わないで読み込むように指定しています。

fukudayasuo commented 10 years ago

coexistのテストが失敗する原因は、CI環境の問題であって、ソースコード自体には問題ありませんでした。

テスト実行中にh5.jsがビルドされることがあり、タイミングによってはcoexistのテストで読み込むh5.jsがランナーが最初に読んだh5.jsとビルドバージョンが異なってしまうことが起きる、というのがテスト失敗の原因でした。