解决Git Bash和Maven运行Cucumber的中文乱码问题

前言

CucumberGherkin语法解析器支持中文,但是在Git Bash和Maven中运行Cucumber时会遇到中文乱码问题。

Cucumber是黄瓜的意思,而Gherkin是腌小黄瓜的意思。 ????

本文描述了如何解决这两种情况的中文乱码问题。

Cucumber命令行示例

cucumber克隆到本地。
PATH系统变量中添加cucumber\bin的绝对路径。
在Git Bash中就可以直接使用cucumber命令了。
比如运行cucumber --i18n zh-CN 来查看Cucumber Gherkin语法对中文的支持。

解决Git Bash运行Cucumber的中文乱码问题

  1. 打开Git Bash,右键选择Options
  2. 选择Text,在Locale中输入zh_CN,在Character set中选择UTF-8
    解决Git Bash和Maven运行Cucumber的中文乱码问题
  3. 点击Save
  4. 关闭Git Bash,然后重新打开Git Bash
  5. 在启动Cucumber的java命令中传入-Dfile.encoding=UTF-8,比如:
"${JAVA_HOME}/bin/java" -Dfile.encoding=UTF-8 -cp "$CLASSPATH" cucumber.api.cli.Main "[email protected]"

例子:运行cucumber --i18n zh-CN 来查看Cucumber Gherkin语法对中文的支持。
解决Git Bash和Maven运行Cucumber的中文乱码问题

解决Maven中运行Cucumber的中文乱码问题

  1. 在Pom.xml中的properties中增加<argLine>-Dfile.encoding=UTF-8</argLine>
<properties>
    <argLine>-Dfile.encoding=UTF-8</argLine>
</properties>
  1. 运行mvn test

例子:运行中文文件名和用中文Gherkin语法的.feature
解决Git Bash和Maven运行Cucumber的中文乱码问题

示例代码

Cucumber的示例代码参见cucumber-java-skeleton