`
wayne_deng
  • 浏览: 11122 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类

解决Cucumber测试结果中文乱码问题

阅读更多
今天想在项目中应用Cucumber进行测试,感觉不错,可惜在命令行窗口中输出的结果中文全变成了乱码,完全影响测试结果的可读性(Cucumber的强项就在此啊)。于是开始寻找解决的方法。 1、最先想到的是cucumber输出的是UTF-8编码,而且整个Rails站点的环境也都是UTF-8了,输出到DOS命令行,显然会出现中文乱码。 于是Google到http://www.iteye.com/topic/120172,里面提出的解决方法是使用 chcp 65001修改cmd的内码页为Unicode。直接输入unicode没问题了,可惜这种方式执行ruby代码会出现Bad file descripto错误!其原因大致是出在ruby端了。 无奈只能另寻他路。 2、换一种思路,考虑到ruby的动态特性,想到覆盖Kernel中的print和puts方法,将输出的内容转换为GB2312,再输出岂不解决问题? 于是翻阅cucumber的代码,发现此为正解,而且cucumber已经考虑到这种情况,有文件cucumber-0.1.16\lib\cucumber\formatters\unicode.rb为证。 可惜很遗憾,cucumber中考虑到需要转换的内码从1251到1252(WinLatin1),没有考虑到中文windows中内码代码为936,因此转换UTF-8输出内容的功能没有启用。另外是不是把936加上就解决问题了呢?测试过好像不行,原因就没深究了。 codepages = (1251..1252) if codepages.include?(codepage) Cucumber::CODEPAGE = “cp#{codepage}“ .. 最终的解决方法是讲unicode.rb修改至如下: # Require this file if you need Unicode support. require ‘cucumber/platform’ require ‘cucumber/formatters/ansicolor’ $KCODE=’u’ unless Cucumber::RUBY_1_9 #if Cucumber::WINDOWS_MRI && `chcp` =~ /Active code page: (\d+)/ #codepage = $1.to_i #codepages = (1251..1252) #if codepages.include?(codepage) Cucumber::CODEPAGE = “GB2312″ #强制将输出内码为GB2312 require ‘iconv’ module Kernel alias cucumber_print print def print(*a) begin cucumber_print *Iconv.iconv(Cucumber::CODEPAGE, “UTF-8″, *a) rescue Iconv::IllegalSequence cucumber_print(*a) end end alias cucumber_puts puts def puts(*a) begin cucumber_puts *Iconv.iconv(Cucumber::CODEPAGE, “UTF-8″, *a) rescue Iconv::IllegalSequence cucumber_puts(*a) end end end #end #end
分享到:
评论

相关推荐

    cucumber_配置指南

    为了解决这个问题,下载 ANSICON v1.66,解压后放到一个无空格和中文字符的目录,然后运行 `ansicon.exe` 并按照提示安装。 7. **运行 Cucumber**: 完成所有配置后,可以在包含 Cucumber 规范的目录下运行 Cucumber...

    cucumber-stddtool:将Cucumber测试结果报告给 STDDTool 的Cucumber格式化程序

    项目移至 LEARNINGWELL 内部 GITLAB 服务器Cucumber STDDTool 格式化程序将测试结果发送到 STDDTool 的 -formatter开始: 在您的 Gemfile 中: gem 'stddtool' 并在您的/support/env.rb文件或支持目录下的任何其他...

    cucumber.jar

    Cucumber使用Hamcrest来创建和比较期望的测试结果。 cucumber-java-1.2.2.jar是Cucumber Java模块,它提供了与Java代码集成的能力,允许开发者编写步骤定义来实现Gherkin场景的逻辑。这些步骤定义可以是JUnit测试的...

    自动化测试平台cucumber框架兼容APP,WEB,API

    3. **报告和日志**:集成测试报告生成工具,如Cucumber-JVM的Cucumber Reports,以便于分析测试结果。 4. **持续集成/持续部署(CI/CD)**:将测试集成到CI/CD流程中,确保每次代码变更后都能自动运行测试。 5. **...

    cucumber-jvm使用问题及解决

    主要讲述维护项目中或者自动化项目建立中遇到的一些问题: 1.决定运行的浏览器 2.运行不起来 3.测试用例比较老,好些没更新:缺少一些场景,一些场景逻辑变了,一些场景不需要了,一些页面元素布局变了。 4.没有...

    cucumber-debugging:Cucumber 测试的调试

    Cucumber 是一种流行的自动化测试工具,特别是在BDD(行为驱动开发)中,它允许开发者、测试人员和非技术人员使用自然语言编写可执行的规范。在Java项目中,Cucumber经常被用来验证软件功能是否按预期工作。然而,当...

    软件测试_cucumber交流.pdf

    此外,Cucumber还支持使用辅助工具(如Cucumber-JVM、Cuke4Duke等)将自然语言编写的测试用例自动转化为测试脚本,从而与实际的软件应用程序进行交互。这种测试脚本的自动执行,帮助团队在软件开发过程中快速发现不...

    cucumber自动化测试官方教程

    【Cucumber自动化测试官方教程】 Cucumber是一款强大的自动化测试工具,支持多种编程语言,如JAVA、JavaScript、Ruby、C++、Lua、Android、Kotlin、C#/F#、PHP、Python、Go、Groovy、Scala等。对于JAVA、JS、Ruby,...

    octane-cucumber-jvm:一个用于将Cucumber测试结果上传到ALM Octane的插件

    您可以在ALM Octane中的小Cucumber测试中查看结果。 先决条件: 您正在使用Java语言和Cucumber-jvm库来开发Cucumber测试。 您正在使用JUnit运行运行CucumberJVM库作为解释 JUnit运行器使用JUnit框架运行Cucumber...

    Cucumber Recipes

    这意味着《Cucumber Recipes》将会从基础到高级,从简单的自动化测试到复杂的测试场景,为读者提供全方位的解决方案。 Dan North作为行为驱动开发的创始人和RSpec故事运行器(Cucumber的前身)的作者,在推荐语中...

    Maven 搭建cucumber 简单示例

    Maven 搭建cucumber 简单示例 1.新建Maven 项目 2.Eclipse安装 cucumber 插件:Help->Install New Software->Add name:cucumber location:http://cucumber.github.com/cucumber-eclipse/update-site 3.导入示例项目,...

    Cucumber-rust:Rust的Cucumber测试框架。 完全本机,没有外部测试运行程序或依赖项

    Cucumber-rust是一个针对Rust编程语言的Cucumber测试框架,它专为行为驱动开发(BDD)设计,同时也适用于测试驱动开发(TDD)和验收测试驱动开发(ATDD)。Cucumber-rust的独特之处在于它完全原生,不依赖任何外部...

    cucumber-automation:这是一个Cucumber自动化测试框架演示

    总的来说,Cucumber自动化测试框架在JavaScript项目中扮演着重要角色,它通过BDD方式促进了开发团队和业务人员之间的沟通,同时提供了一种强大而直观的自动化测试解决方案。了解和掌握Cucumber的使用,对于提升软件...

    基于cucumber的BDD实现【java、pythion】

    4. Reporters(报告器):Cucumber运行结束时生成的报告,可以为用户提供详细的测试结果信息,包括通过的场景、失败的场景、跳过的场景等。Cucumber支持多种格式的报告,如HTML、JSON、XML等。 在实现简单的UI自动...

    cucumber jar包

    Cucumber 是一个自动化测试框架,尤其适用于行为驱动开发(BDD)。它允许非技术人员,如业务分析师和产品经理,使用自然语言编写测试规范,这些规范被称为特性文件。Cucumber 使用 Gherkin 语法,这是一种结构化的...

    springboot-cucumber-test:Cucumber弹簧靴的测试项目

    本项目"springboot-cucumber-test"结合了SpringBoot和Cucumber,提供了一种高效且易懂的测试解决方案。 首先,让我们深入了解一下SpringBoot。SpringBoot是Spring框架的一个扩展,它预配置了许多常见设置,如嵌入式...

    cucumber-jvm源码 BDD测试框架

    Cucumber是一个自动化测试工具,它属于行为驱动开发(BDD)的范畴。这个工具的特点是可以用自然语言来描述测试用例,因此即使是非程序员也能轻松理解。Cucumber主要由Ruby编写,但同时也支持Java、.Net等多种开发...

    The Cucumber book (English Version)

    - **持续集成**:Cucumber可以与持续集成服务器如Jenkins集成,实现自动化测试的运行,确保每次代码提交都能及时发现潜在问题。 - **协作开发**:Cucumber促进团队成员之间的沟通,包括开发者、测试人员和产品经理,...

    Springboot Cucumber测试配置介绍详解

    主要介绍了Springboot Cucumber测试配置介绍详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Global site tag (gtag.js) - Google Analytics