[js] JsTestDriver が動かない…
「テスト駆動 JavaScript」を買ったので読んでいるのだけど、この本を通して使う JsTestDriver が動かなくて困っている。
セットアップは問題なく終わっていて、テストファイルを必要としない状態では問題なく動作する。
$ java -jar ~/bin/JsTestDriver-1.2.1.jar --port 4224
でも肝心のテストファイルを必要とする場合は動かない!
「java.net.ConnectionException: Connection refused」って例外が出る。
これじゃテストにはまるっきり使えないじゃないか…。
$ java -jar ~/bin/JsTestDriver-1.2.1.jar --tests all java.net.ConnectException: Connection refused java.lang.RuntimeException: java.net.ConnectException: Connection refused at com.google.jstestdriver.HttpServer.fetch(Unknown Source) at com.google.jstestdriver.JsTestDriverClientImpl.listBrowsers(Unknown Source) at com.google.jstestdriver.ThreadedActionsRunner.run(Unknown Source) at com.google.jstestdriver.ActionRunner.runActions(Unknown Source) at com.google.jstestdriver.JsTestDriverServer.main(Unknown Source) Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:395) at sun.net.www.http.HttpClient.openServer(HttpClient.java:530) at sun.net.www.http.HttpClient.<init>(HttpClient.java:234) at sun.net.www.http.HttpClient.New(HttpClient.java:307) at sun.net.www.http.HttpClient.New(HttpClient.java:324) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836) at com.google.jstestdriver.HttpServer.fetch(Unknown Source) ... 4 more
公式の GettingStartedを見てみると、同じようにハマっている人がいた。
でもこれといった解決策が出てきていないみたい。
この本の原著が出たのは2009年で、当時の JsTestDriver のバージョンが 1.2.1。
2012年5月現在の最新バージョンは 1.3.4 で2年以上経っているので、こんなバグがずっと残っているとは考えづらい。
なにか見落としていると思うのだけど…。
追記
解決した!使い方を勘違いしていたみたい。
「--tests」がつくのとつかないのはどちらも実行させる必要がある。
「--tests」つかないのはブラウザをキャプチャできるかどうかの確認用だと思っていたけど違っていた。
どっちも動かさないといけない。ついてないのがサーバ起動用で、ついてる方がテストの実行用という役割みたい。