2017-07-10 19 views
-1

2〜4バイトのUTF-8文字がグループの有効な名前であるかどうかをテストする、JenkinsからCucumber(Ruby 2.3)テストスイートを実行しようとしています。Jenkinsで互換性のない文字エンコーディングを解決できない

私は数多くの解決策を試してきましたが、鉱山に関連する問題を見つけようとしている日を探しています。

私に出没されたエラーは次のとおりです。

:私は上のグループを作成していますマシン上でCLIにsshコマンドを送信しようとしていますラインを指し

incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError) 

$mymachine.cli_ssh.exec!("config group create --name='#{group_name}'") 
exec!()コマンド内に存在

command.force_encoding("UTF-8") 

エラーOを

グループのABCD "原因エラー と グループのЯЯЯ" 原因エラー

を行いません。私は、このようなことを、2-4バイトのUTF-8文字を送信していたときにNLY発生問題:

私のローカルUbuntuマシンでこのスクリプトを実行すると、私のエリア内の他のマシンと同様に、Ruby 2.2.1も正常に動作します。 (なぜ私は与えられたより多くのコードを提供する必要はないと思うのです)。 UTF-8へのエンコーディングの変更があり、Ruby 2.0への移行があったのを知っていますが、両方のマシンがそれを過ぎているので、それは問題ではないと思います。

Jenkinsマシンで、en_US.UTF-8というシステムロケールをロケールシステム変数と/.bashrcファイルの両方に設定しようとしました。いいえ、ASCII-8BITに設定されたエンコード変数はどこにありますか。

また、スクリプト実行前にJenkinsシェルからシステムロケールをエクスポートしようとしました。

私はこの問題を解決するのに役立つ何らかの答え、または何らかの指示が必要です。

答えて

0

Jenkinsシステム上のすべてのRuby gemを更新することで問題は解決しました。特定の宝石は、JenkinsマシンのRubyバージョンと技術的に互換性があったにもかかわらず古くなった可能性があります。そのため、UTF8以外のRubyコードが存在する可能性があります。

将来この問題に遭遇する場合は、すべてのgemとrubyのバージョンがJenkinsマシンと作業マシンの間で一貫していることを確認することをお勧めします。

関連する問題