2014年4月14日月曜日

WindowsでSublime TextのRubyTestの実行に失敗する場合の対処法

Windows環境でRailsTutorialに沿って進めていたら3.6.4 Tests inside Sublime Textで躓きました。

Build Consoleに下記が表示されていました。

[Decode error - output not utf-8]
[Finished in 0.1s with exit code 1]
[cmd: [' bundle exec rspec spec\\requests\\static_pages_spec.rb -l50']]
[dir: C:\***\sample_app]
[path: C:****;]

いろいろ試行錯誤した結果、run_ryby_test.pyの下記(201行目あたり)を修正することで、何とか実行できるっぽい?ことが判明。

self.view.window().run_command("exec", {
"cmd": [command],
"shell": True,
"working_dir": working_dir,
"file_regex": r"([^ ]*\.rb):?(\d*)"
})

self.view.window().run_command("exec", {
"cmd": command, # ←[]除去
"shell": True,
"working_dir": working_dir,
"file_regex": r"([^ ]*\.rb):?(\d*)"
})

#最初はメッセージに「Decode error」と表示されていたから
エンコードの問題かと思って下記のようにしてみたのですが、

self.view.window().run_command("exec", {
"cmd": [command],
"shell": True,
"working_dir": working_dir,
"file_regex": r"([^ ]*\.rb):?(\d*)",
"encoding": "cp932"
})

こうすると、コンソールに「指定されたパスが見つかりません。」と出たので、
commandが間違っているようだとわかりました。

ちなみに、Windows環境でListing 3-34は「# gem 'win32console', '1.3.2'」のコメントアウトをはずすとエラーになるっぽいです。Ruby2.0では、Win32consoleは必要ないみたいです。

#参考:Error “cannot load such file — 2.0/Console_ext” running unit tests in RubyMine

#この問題は一応本家のrailstutorialに報告してみたので、もしかしたらそのうち修正されているかもしれません。

0 件のコメント :

コメントを投稿