【Cucumber】【问题集锦】

【问题一】invalid byte sequence in GBK”问题 invalid byte sequence in UTF-8”问题
参考地址:http://fantaxy025025.iteye.com/blog/2223849
具体解决方案:
碰见错误:

Ruby代码 收藏代码

test.rb:8:in `match': invalid byte sequence in GBK (ArgumentError)  
        from test.rb:8:in `block in <main>'  
        from test.rb:6:in `each'  
        from test.rb:6:in `<main>'  

原因:

平时习惯在文件头部加入# encoding: utf-8 没用的。

理论总是在问题的时候才能闪光。
看此文。Ruby1.9之字符串内编码和外编码

解决方法:

假如外部文件是utf-8编码。

  • 读文件的时候指定外编码:utf-8。 lines = File.readlines('xxx\origin3.txt', :external_encoding => "UTF-8")

  • 行内转码:line.force_encoding("UTF-8")#是修改内编码为UTF8

  • file=File.new(fr).tap

  • set_encoding 'utf-8','GBK‘ #是将字节流转换成GBK格式的(外编码仍为UTF8)

  • f = File.open 'environment.rb', 'r:gbk' # 如果是 utf-8 编码,就用 'r:utf-8'

f = File.open 'environment.rb', 'r:gbk:utf-8' # 如果是 utf-8 编码,就用 'r:utf-8'

为什么很多人出现此问题?

win7下:

puts "Encoding.default_external=#{Encoding.default_external}"

puts "Encoding.default_internal=#{Encoding.default_internal}"

win7下默认输出:

Encoding.default_external=GBK

Encoding.default_internal=

看见了默认是认为外部编码gbk,但我们一般的习惯文件是utf-8的。

好了,知晓了。

【问题2】
Parser errors:
(20:4): expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got '场场景景:: 课课程程相相关关-发发表表评评论论'
(21:5): expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got '当当 移移动动端端用用户户发发送送POST请请求求'
(22:5): expected: #TagLine, #ScenarioLine, #ScenarioOutlineLine, #Comment, #Empty, got '那那么么 移移动动端端发发送送请请求求接接口口返返回回值值正正确确<rtn_msg><成成功功>'

解决方法:
原因一: .features 文件 里的“场景”后面的冒号是英文的,不是中文的

posted @ 2018-09-29 15:31  素人渔芙2017  阅读(281)  评论(0编辑  收藏  举报