0
votes

I'm a new in automated test with cucumber .i have a maven project and i try to pass a string but i have this error .

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: Illegal repetition near index 15 write a subject {string} ^ at cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:156) at cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:68) at cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:41) at cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86) at cucumber.runtime.Runtime.(Runtime.java:92) at cucumber.runtime.Runtime.(Runtime.java:70) at cucumber.runtime.Runtime.(Runtime.java:66) at cucumber.api.junit.Cucumber.createRuntime(Cucumber.java:80) at cucumber.api.junit.Cucumber.(Cucumber.java:59) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at 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) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209) Caused by: java.util.regex.PatternSyntaxException: Illegal repetition near index 15 write a subject {string} ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.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) at java.util.regex.Pattern.compile(Unknown Source) at cucumber.runtime.java.JavaBackend.pattern(JavaBackend.java:203) at cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:151) ... 25 more

2
Which version of cucumber are you using?M.P. Korstanje
Looks like your version of Cucumber doesn't support Cucumber expressions yet.M.P. Korstanje
thnx i resolved my problemLamya Messaoudi

2 Answers

0
votes

use this

@Given("write a subject (.*)")
public void writeSubject(final String text){
   System.out.println(text);
   System.out.println("lamia");
 } 
0
votes

Try this in the specific feature file's step:

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

And in the Java step:

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