title: How i can define a missing step from a Groovy project with cucumber?
body: <p>i have one project how is in groovy (not maven structure), and when i review the features is </p>
  
  <blockquote>
  <pre><code>Feature: API Authentication Functionality
  
  @Api @General
  Scenario: I cannot log in to the API with bad credentials
  Given the following users are defined:
      | USER_EMAIL               | RAW_PASSWORD     |
    | test@test.reachforce.com | YesGoodPassword! |
   And I use the username 'test@test.reachforce.com'
    And I use the password 'UhOhWrongWord!'
    When I log in to the API
    Then the response is forbidden
  
   @Api @General
    Scenario: I log in to the API
      Given the following users are defined:
       | USER_EMAIL               | RAW_PASSWORD     |
        | test@test.reachforce.com | YesGoodPassword! |
     And I use the username 'test@test.reachforce.com'
     And I use the password 'YesGoodPassword!'
     When I log in to the API
     Then the response is valid
     And the response includes a token
  </code></pre>
  </blockquote>
  
  <p>But in the steps this warning appears: </p>
  
  <blockquote>
    <p>step the following users are defined does not have a matching glue
    code</p>
  </blockquote>
  
  <p>The Steps structure are like: AuthenticationSteps.groovy </p>
  
  <p>And when i run it gave me this error:</p>
  
  <pre><code>Exception in thread "main" java.lang.ExceptionInInitializerError
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray$1.run(CallSiteArray.java:68)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray$1.run(CallSiteArray.java:65)
      at java.security.AccessController.doPrivileged(Native Method)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallStaticSite(CallSiteArray.java:65)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:162)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
      at com.reachforce.tools.db.DataSourceFactory.&lt;init&gt;(DataSourceFactory.groovy:12)
      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.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
      at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:239)
      at com.reachforce.config.ValidationConfig.&lt;init&gt;(ValidationConfig.groovy:31)
      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 java.lang.Class.newInstance(Unknown Source)
      at org.codehaus.groovy.runtime.InvokerHelper.createScript(InvokerHelper.java:436)
      at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
      at groovy.lang.GroovyShell.parse(GroovyShell.java:680)
      at cucumber.runtime.groovy.GroovyBackend.parse(GroovyBackend.java:115)
      at cucumber.runtime.groovy.GroovyBackend.loadGlue(GroovyBackend.java:76)
      at cucumber.runtime.Runtime.&lt;init&gt;(Runtime.java:91)
      at cucumber.runtime.Runtime.&lt;init&gt;(Runtime.java:69)
      at cucumber.runtime.Runtime.&lt;init&gt;(Runtime.java:65)
      at cucumber.api.cli.Main.run(Main.java:35)
      at cucumber.api.cli.Main.main(Main.java:18)
  Caused by: java.io.FileNotFoundException: \etc\validation\validation.properties (El sistema no puede encontrar la ruta especificada)
      at java.io.FileInputStream.open0(Native Method)
      at java.io.FileInputStream.open(Unknown Source)
      at java.io.FileInputStream.&lt;init&gt;(Unknown Source)
      at java.io.FileInputStream.&lt;init&gt;(Unknown Source)
      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.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
      at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77)
      at org.codehaus.groovy.runtime.callsite.ConstructorSite.callConstructor(ConstructorSite.java:45)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247)
      at com.reachforce.config.ValidationEnvironment.&lt;clinit&gt;(ValidationEnvironment.groovy:10)
  ... 36 more
  </code></pre>
  
  <p>Any help?</p>