首页 > 解决方案 > 如何传递带有黄瓜表达式的字符串?

问题描述

我是黄瓜自动化测试的新手。我有一个 Maven 项目,我尝试传递一个字符串,但我有这个错误

Feature: writing a sentence

Scenario: As a admin i want to write a sentence

Given write a subject "Administrator" 
When write a verb
Then write a complement 
@Given("write a subject {string}")
public void writeSubject(String text)
{
    System.out.println(text);
    System.out.println("lamia");
}

cucumber.runtime.CucumberException:java.util.regex.PatternSyntaxException:索引 15 附近的非法重复在 cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:156) 处的 cucumber.runtime.java 处写入主题 {string} ^。 MethodScanner.scan(MethodScanner.java:68) 在 cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:41) 在 cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86) 在 cucumber.runtime.Runtime .(Runtime.java:92) 在 cucumber.runtime.Runtime.(Runtime.java:70) 在 cucumber.runtime.Runtime.(Runtime.java:66) 在 cucumber.api.junit.Cucumber.createRuntime(Cucumber.java :80) 在 cucumber.api.junit.Cucumber.(Cucumber.java:59) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect。NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java: 104) org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) org.junit.internal.builders.AllDefaultPossibilitiesBuilder .runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 在 org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 在 org. eclipse.jdt.internal.junit4.runner.JUnit4TestLoader。createUnfilteredTest(JUnit4TestLoader.java:90) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader. java:49) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209) 原因:java .util.regex.PatternSyntaxException:索引 15 附近的非法重复在 java.util.regex.Pattern.error(Unknown Source) at java.util.regex 处写入主题 {string} ^。Pattern.closure(Unknown Source) at java.util.regex.Pattern.sequence(Unknown Source) at java.util.regex.Pattern.expr(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.(Unknown Source) 在 cucumber.runtime.java.JavaBackend.pattern(JavaBackend.java:203) 在 cucumber.runtime.java 的 java.util.regex.Pattern.compile(Unknown Source)。 JavaBackend.addStepDefinition(JavaBackend.java:151) ... 25 更多203) 在 cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:151) ... 25 更多203) 在 cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:151) ... 25 更多

标签: javacucumber

解决方案


在特定功能文件的步骤中尝试此操作:

Scenario: As an admin, I want to write a sentence
      Given write a subject <Administrateur> 

在 Java 步骤中:

  @Given("^write a subject \"([^\"]*)\"")
  public void writeSubject(final String text){...

推荐阅读