gpt4 book ai didi

java - 如何使用不同语言的 cucumber /小 cucumber ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:46:52 24 4
gpt4 key购买 nike

我在公司里用 Cucumber、Sikuli 和 Eclipse 搭建了一个测试环境。我已经设法让一切正常工作,但现在我需要使 .feature 文件在葡萄牙语中工作。

据我所知,我所要做的就是将注释 #language: pt 放在 .feature 文件的开头,但它不起作用。

我还运行了命令 cucumber --i18n helpcucumber --i18n pt 来检查语言是否真的存在,它确实存在。

还有其他我不知道的配置吗?

我正在使用这些 jar :

  • cucumber-core-3.0.2.jar
  • cucumber -java-3.0.2.jar
  • cucumber -junit-3.0.2.jar
  • cucumber -jvm-deps-1.0.6.jar
  • 小 cucumber -5.1.0.jar
  • junit-4.12.jar
  • mockito-all-1.10.19.jar

最佳答案

您可以通过在第一行添加 # language: xx 来控制 Gherkin 关键字的语言。

对于葡萄牙语来说是

# language: pt
Funcionalidade: um exemplo

可以在 https://docs.cucumber.io/gherkin/reference/#spoken-languages 找到所有支持的口语列表。 .例如,您可能在 gherkin-languages.json 中查找的本地化关键字

一个简单的 Maven 项目。

结构

pom.xml
src/test/java/features/example.feature
src/test/java/runner/TestRunner.java

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.suboptimal</groupId>
<artifactId>cuke-test-13.so</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.cucumber>3.0.2</version.cucumber>
</properties>
<dependencies>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>${version.cucumber}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${version.cucumber}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

src/test/java/features/example.feature

# language: pt
Funcionalidade: um exemplo

Cenario: foo
Dado something given

src/test/java/runner/TestRunner.java

package runner;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/java/features/example.feature"
)
public class TestRunner {
}

使用mvn compile test运行测试会产生以下错误。

Undefined scenarios:
src/test/java/features/example.feature:4 # foo

1 Scenarios (1 undefined)
1 Steps (1 undefined)
0m0.036s


You can implement missing steps with the snippets below:

@Dado("something given")
public void something_given() {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

编辑 当使用 记事本 在 Windows 上将特征文件保存为 UTF-8 时,BOM 字符 (EF BB BD) 被插入到开始。

$ hexdump -C example.feature
00000000 ef bb bf 23 20 6c 61 6e 67 75 61 67 65 3a 20 70 |...# >language: p|

如果运行 mvn test 执行失败并出现异常。

cucumber.runtime.CucumberException: gherkin.ParserException$CompositeParserException: Parser errors:
(1:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got '# language: pt'
(2:1): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Funcionalidade: um exemplo'
(4:3): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Cenario: foo'
(5:3): expected: #EOF, #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Dado something given'

关于java - 如何使用不同语言的 cucumber /小 cucumber ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51948302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com