Sencha Touchのテストを動かしてみる。
sencha-touch-1.0.1/test/jasmine
に、SpecRunner.htmlが見つかるので、これを開いてみる。
すると、、真っ白い画面が表示されるだけで何も起こらない。。
コンソールログを見てみると、
Failed to load resource: the server responded with a status of 404 (Not Found)
jasmine.jsFailed to load resource: the server responded with a status of 404 (Not Found)
Spec.jsFailed to load resource: the server responded with a status of 404 (Not Found)
Reporter.jsFailed to load resource: the server responded with a status of 404 (Not Found)
...
という感じで全然ダメそうなので、htmlのソースを見てみると、
<link rel="stylesheet" type="text/css" href="../../src/platform/test/jasmine/lib/reporter/resources/reporter.css" /> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/jasmine-1.0.1/jasmine.js"></script> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/reporter/src/Spec.js"></script> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/reporter/src/Reporter.js"></script>
となっている。
../../src/platform/test
は、
sencha-touch-1.0.1/src/platform/test
なんですが、このディレクトリがない!
jasmine-standalone-1.0.1のSpecRunner.htmlを見ると、
... <link rel="stylesheet" type="text/css" href="lib/jasmine-1.0.1/jasmine.css"> <script type="text/javascript" src="lib/jasmine-1.0.1/jasmine.js"></script> <script type="text/javascript" src="lib/jasmine-1.0.1/jasmine-html.js"></script> <!-- include source files here... --> <script type="text/javascript" src="src/Player.js"></script> <script type="text/javascript" src="src/Song.js"></script> <!-- include spec files here... --> <script type="text/javascript" src="spec/SpecHelper.js"></script> <script type="text/javascript" src="spec/PlayerSpec.js"></script> ...
ってな感じで、かなり違う。
Sencha Touchで使っているJasmineは、やや古いバージョンなのかも。
とりあえず、新しい方に合わせてみる。
まず、jasmine-standalone-1.0.1をフォルダごと、
sencha-touch-1.0.1/src/platform/test
にコピーして、jasmineに名前を変える。
sencha-touch-1.0.1/test/jasmine/SpecRunner.html
をコピーして、
sencha-touch-1.0.1/test/jasmine/SpecRunner2.html
を作り、以下のように書き換える。
SpecRunner2.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Jasmine Test Runner - Sencha Touch</title> <!-- <link rel="stylesheet" type="text/css" href="../../src/platform/test/jasmine/lib/reporter/resources/reporter.css" /> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/jasmine-1.0.1/jasmine.js"></script> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/reporter/src/Spec.js"></script> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/reporter/src/Reporter.js"></script> --> <link rel="stylesheet" type="text/css" href="../../src/platform/test/jasmine/lib/jasmine-1.0.1/jasmine.css"> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/jasmine-1.0.1/jasmine.js"></script> <script type="text/javascript" src="../../src/platform/test/jasmine/lib/jasmine-1.0.1/jasmine-html.js"></script> <!-- Source files --> <!-- build: Sencha Touch --> <!-- package: Platform Util --> <script type="text/javascript" src="../../src/platform/src/Ext.js"></script> <script type="text/javascript" src="../../src/platform/src/util/Observable.js"></script> <script type="text/javascript" src="../../src/platform/src/util/Stateful.js"></script> (中略) <script type="text/javascript" src="spec/widgets/form/Text.js"></script> <script type="text/javascript" src="spec/widgets/form/Toggle.js"></script> <script type="text/javascript" src="spec/widgets/form/Url.js"></script> <!-- Boot --> <script type="text/javascript"> var config = {}; if (!Ext.is.Desktop) { config.fullscreen = true; } config.onReady = function() { //jasmine.getEnv().addReporter(new SenchaReporter()); jasmine.getEnv().addReporter(new jasmine.TrivialReporter()); jasmine.getEnv().execute(); } var eventSimulator = new Ext.util.EventSimulator(); Ext.setup(config); </script> </head> <body> </body> </html>
これで、
850 specs, 22 failures in 15.989s Finished at ...
とか表示されるので、一応実行できてるんだと思う。
環境の問題かも知れないけど、22個もパスしないテストケースがあるのかよ。。
※Sencha Touch 1.0.1aでやっても、同様の結果でした。