Closed kazaoki closed 9 years ago
@kazaoki さんこんにちは!日本語でも大丈夫ですよ!!日本語大好き!!
Turnipのfeatureファイルで日本語書式にするため冒頭に# language: jaと書くと、レポート生成時に Encoding::CompatibilityError エラーが出力されます。
報告ありがとうございます。のちほど調べてみます :pizza:
本現象が起きた環境ですが、ログにもあるとおり
turnip_formatter
0.3.4でよろしいでしょうか。
返信ありがとうございます!
root@870c437f947a:/turnip# ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
root@870c437f947a:/turnip# cat Gemfile.lock | grep turnip
turnip (1.3.1)
turnip_formatter (0.3.4)
turnip (~> 1.3.0)
turnip
turnip_formatter
なので、多分
です。 ruby よくわからないです。難しい。。
情報ありがとうございます!
↑あー、余計な ref 情報出てますが気にしないでください・・。 こっちにも出ちゃうんだ・・orz
@kazaoki こちらの環境で調べてみたのですが、同様の現象は確認できませんでした。
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
$ bundle list | grep turnip
* turnip (1.3.1)
* turnip_formatter (0.3.4)
※ 強いていえば、実行環境が OSX か Linux か、の違いでしょうか…
試しに @kazaoki さんの環境で以下の手順で試してもらってよろしいでしょうか。
とりあえず turnip_formatter
もってくる
$ git clone https://github.com/gongo/turnip_formatter.git
$ cd turnip_formatter
$ bundle install --path vendor/bundle
以下の内容で turnip_formatter/example/spec/features/battle.ja.feature
に保存
# encoding: utf-8
# language: ja
機能: Battle a monster
シナリオ: normal monster
前提 there is a monster
もし I attack it
ならば it should die
かつ Fanfare
シナリオ: strong monster
前提 there is a strong monster
もし I attack it
ならば it should die
かつ Fanfare
実行してみる
$ cd turnip_formatter/example
$ bundle exec rspec spec/features/battle.ja.feature
ここで、私は Encoding::CompatibilityError
出ずに
2 examples, 1 failure
となりました(正常に動いている)
レポートもこんな感じに
@gongo 様
ご丁寧なご連絡ありがとうございます!
当方は、Linux(CentOS7)上のdocker(公式Rubyイメージ:debian)を実行環境としています。
docker上で上記のコマンドを実行してみたのですが、ArgumentError
という別のエラーが出ております。。
また、report.html
は作成されますが、0byteです。
$ docker run -it ruby:2.2.2 bash
# git clone https://github.com/gongo/turnip_formatter.git
# cd turnip_formatter
# bundle install --path vendor/bundle
# cd example/spec/features/
# curl -LO http://kazaoki.jp/turnip-test/battle.ja.feature
# cd /turnip_formatter/example
# bundle exec rspec spec/features/battle.ja.feature
.F
/turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb:53:in `strip': invalid byte sequence in US-ASCII (ArgumentError)
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb:53:in `failure_slash_error_line'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb:93:in `failure_lines'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb:28:in `colorized_message_lines'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb:139:in `formatted_message_and_backtrace'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/exception_presenter.rb:48:in `fully_formatted'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/notifications.rb:200:in `fully_formatted'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/notifications.rb:114:in `block in fully_formatted_failed_examples'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/notifications.rb:113:in `each'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/notifications.rb:113:in `each_with_index'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/notifications.rb:113:in `fully_formatted_failed_examples'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/formatters/base_text_formatter.rb:33:in `dump_failures'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:184:in `block in notify'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:183:in `each'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:183:in `notify'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:155:in `block in finish'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:170:in `close_after'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:151:in `finish'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/reporter.rb:79:in `report'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:113:in `run_specs'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:89:in `run'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in `run'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in `invoke'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/gems/rspec-core-3.3.2/exe/rspec:4:in `<top (required)>'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/bin/rspec:23:in `load'
from /turnip_formatter/vendor/bundle/ruby/2.2.0/bin/rspec:23:in `<main>'
足りない何かがあるんでしょうか。。 dockerなので @gongo 様の方でも全く同じ結果が確認できると思いますので、お手数をお掛け致しますがよろしくお願いします。
※ちなみに、実際にEncoding::CompatibilityError
が出た開発環境は公式rubyイメージではなく、別のdockerコンテナ(debianイメージ上のrenv)ですが、rubyやturnipのバージョンは同様で、こちらも上記コマンドを実行すると同じくArgumentError
が出ます。
→ https://hub.docker.com/r/kazaoki/spec/~/dockerfile/
とっても素敵なレポートツール、どうしてもLinux上で生成させたいです・・!!
私も ruby:2.2.2
イメージで試してみましたが、同様の現象を確認できました。
そして、おそらく locale ja_JP.UTF-8
が生成されてないからかな、と思われます。
bundle exec ..
の前に以下のコマンドを試してみてください。
# apt-get update
# apt-get install locales
# echo "ja_JP.UTF-8 UTF-8" >> /etc/locale.gen
# /usr/sbin/locale-gen ja_JP.UTF-8
# /usr/sbin/update-locale LANG=ja_JP.UTF-8
# export LANG=ja_JP.UTF-8
# export LC_ALL=ja_JP.UTF-8
このあとにテスト実行すると、ArgumentError は出ず、レポートも作成されてるっぽいです!
返事が遅れてスイマセン・・! おっしゃるように上記のコマンドを実行したらうまくいくようになりました!レポートも無事生成されています! 本当にありがとうございます!
引き続き gnawrnip の方を試してます今。 かなり素敵ですこれ!
無事うまくいってよかったです! ひとまずこの issue はクロ〜ズしますね。また何かあれば!!
こんにちは。日本語で Issue 書いていいのか分かりませんが・・。
Turnipのfeatureファイルで日本語書式にするため冒頭に
# language: ja
と書くと、レポート生成時に Encoding::CompatibilityError エラーが出力されます。[feature file]
[error]
日本語でfeatureファイル書きたいのです・・! http://magazine.rubyist.net/?0042-FromCucumberToTurnip
よろしくご確認お願いします。