Discussion:
[Cucumber:8604] How mature cuke4duke is for enterprises and what is its future?
alex.ikhelis
2011-08-09 15:54:23 UTC
Permalink
Hi there!

We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.

However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?

Best reagrds,
Alex Ikhelis,
SDET Expedia.Com

---------- Forwarded message ----------
From: aslak hellesoy <aslak.hellesoy-***@public.gmane.org>
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
To: lakhani.ajay-***@public.gmane.org

Hi Ajay,

Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
Cuke4Duke documentation is here:
https://github.com/cucumber/cuke4duke/wiki
For further questions, please use the Cucumber mailing list:
http://groups.google.com/group/cukes

Cheers,
Aslak
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-09 16:30:07 UTC
Permalink
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.

Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.

All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.

Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
John Lonergan
2011-08-09 20:59:48 UTC
Permalink
Aslak,

I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
Post by aslak hellesoy
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-09 21:45:42 UTC
Permalink
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.

Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).

I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!

Aslak
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Cedric Lamalle
2011-08-10 01:50:21 UTC
Permalink
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining the
thread. I'd like to participate in the development of this jvm version, to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish this part,
it still lacks the registering of Transform methods. I have some plans to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool. This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
What I would like to know is how is the contributing process of the project.
Do you accept external contributions? Is there a formal code review process?
Cheers,
Cédric.

[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
Post by John Lonergan
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-11 00:26:28 UTC
Permalink
This post might be inappropriate. Click to display it.
Cedric Lamalle
2011-08-11 02:12:54 UTC
Permalink
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining
the
Post by Cedric Lamalle
thread. I'd like to participate in the development of this jvm version,
to
Post by Cedric Lamalle
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've
worked
Post by Cedric Lamalle
in the conversion part (transformables), and I am close to finish this
part,
Post by Cedric Lamalle
it still lacks the registering of Transform methods. I have some plans to
make this registering part more modular, mapping annotations with
register
Post by Cedric Lamalle
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to
simplify
Post by Cedric Lamalle
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
I already have a jira account there, so I could do that. I'll start a new
thread to keep you informed.

The groupId can be cukes.info and the artifactId cucumber. I'd like to
Post by aslak hellesoy
keep the cucumber.* package name. Would that work?
The groupId should be info.cukes (it's inverted), in relation to the
artifactId, we'll need to have one per project: cucumber-core,
cucumber-java, cucumber-guice, ...
In relation to the package names I think that there will be no problem to
keep them the way they are, I'll check that.
Post by aslak hellesoy
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review
process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Great!
Thanks for helping out!
Glad to help!
Bye,
Cédric.
Post by aslak hellesoy
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by Cedric Lamalle
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing
cucumber/
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we
are
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
uncertain about how reliable cuke4duke is now. Question based on
the
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working
on
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google
Groups
Post by Cedric Lamalle
Post by aslak hellesoy
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-11 08:26:50 UTC
Permalink
On Thu, Aug 11, 2011 at 3:12 AM, Cedric Lamalle
Post by Cedric Lamalle
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining the
thread. I'd like to participate in the development of this jvm version, to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish this part,
it still lacks the registering of Transform methods. I have some plans to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
I already have a jira account there, so I could do that. I'll start a new
thread to keep you informed.
Post by aslak hellesoy
The groupId can be cukes.info and the artifactId cucumber. I'd like to
keep the cucumber.* package name. Would that work?
The groupId should be info.cukes (it's inverted), in relation to the
artifactId, we'll need to have one per project: cucumber-core,
cucumber-java, cucumber-guice, ...
I hope we don't have to pre-announce the artifacts. I could easily see
those changing quite a bit over time.
Post by Cedric Lamalle
In relation to the package names I think that there will be no problem to
keep them the way they are, I'll check that.
Sounds good. Thanks a lot.
Post by Cedric Lamalle
Post by aslak hellesoy
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Great!
Post by aslak hellesoy
Thanks for helping out!
Glad to help!
Bye,
Cédric.
Post by aslak hellesoy
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-11 13:48:20 UTC
Permalink
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining the
thread. I'd like to participate in the development of this jvm version, to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish this part,
it still lacks the registering of Transform methods. I have some plans to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd like to
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
Ok, I just merged your code and pushed to cucumber's repo. A couple of comments:

* Had to comment out a couple of lines in TransformerTest.java because
of compilation errors (not merge related I think). Can you take a look
at that?
* I'm using IntelliJ, you're using Eclipse. It would be great if we
could use the same formatting settings. Any clues on this? (I'm using
the default settings).

It's quite rare that I get pull requests, read the code and think:
"Yup, that's exactly what I had planned to do". How did you figure out
what my plan was with Locales and argument transforms? Just by reading
a couple of TODOS? :-). Anyway, really awesome.

The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit runner
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.

Is there anything in particular you'd like to tackle next? Here are a
couple of ideas:

* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)

Anything else?

Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
Post by aslak hellesoy
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Cedric Lamalle
2011-08-11 16:07:06 UTC
Permalink
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining
the
Post by aslak hellesoy
Post by Cedric Lamalle
thread. I'd like to participate in the development of this jvm version,
to
Post by aslak hellesoy
Post by Cedric Lamalle
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've
worked
Post by aslak hellesoy
Post by Cedric Lamalle
in the conversion part (transformables), and I am close to finish this
part,
Post by aslak hellesoy
Post by Cedric Lamalle
it still lacks the registering of Transform methods. I have some plans
to
Post by aslak hellesoy
Post by Cedric Lamalle
make this registering part more modular, mapping annotations with
register
Post by aslak hellesoy
Post by Cedric Lamalle
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to
simplify
Post by aslak hellesoy
Post by Cedric Lamalle
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd like to
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the
project.
Post by aslak hellesoy
Like you have done is fine! Fork, hack, push, send pull request.
* Had to comment out a couple of lines in TransformerTest.java because
of compilation errors (not merge related I think). Can you take a look
at that?
I will take a look at it. Maybe I'm using a different JDK version (6.0) or
something like that.

* I'm using IntelliJ, you're using Eclipse. It would be great if we
Post by aslak hellesoy
could use the same formatting settings. Any clues on this? (I'm using
the default settings).
I don't know what the default settings of IntelliJ are, but I can make a
configuration xml to use the same settiings in Eclipse. Maybe someone
already did it. Googling quickly I only found the inverse[1]. Will have a
look at it too. Or maybe I should simply switch to IntelliJ...
Post by aslak hellesoy
"Yup, that's exactly what I had planned to do". How did you figure out
what my plan was with Locales and argument transforms? Just by reading
a couple of TODOS? :-). Anyway, really awesome.
Yeah, I've read the TODOS while browsing the code. Using the Locale just
seemed natural for this kind of operation, and without locale the features
will be a lot less business friendly.
Post by aslak hellesoy
The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit runner
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.
I agree on the common part in cucumber.runtime, it could be useful too to
write plugins using cucumber. For instance, the maven plugin, a wiki plugin
(à la GreenPepper), etc.
Post by aslak hellesoy
Is there anything in particular you'd like to tackle next? Here are a
* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)
I was planning to continue the arguments part, tables and custom
transformers.
For the first one what I had in mind besides the regular tables was to use
the transformable parts to create rich objects, this would speed up the
setup. This would be something like this:
Given the following users are registered:
|name | birth date | bonus points|
|john doe | 01/01/1970 | 10000 |
|mary doe | 01/01/1970 | 15700 |
The specialiazed table in the step implementation would return a list of
User objects:
public class User {
private String name;
private Date birthDate;
private Integer bonusPoints;
// ....
}
For the second part (Custom Transformers), it would be great to think in a
modular way of metadata processing, to delegate the registration part to
another class. In this case a class to register methods with @Transform
annotations. For the hooks a class to register methods with @After and
@Before.
What do you think?
Post by aslak hellesoy
Anything else?
Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review
process?
Post by aslak hellesoy
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by Cedric Lamalle
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis <
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE
product
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by alex.ikhelis
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing
cucumber/
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by alex.ikhelis
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we
are
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by alex.ikhelis
uncertain about how reliable cuke4duke is now. Question based on
the
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by alex.ikhelis
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably
be
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
identical with the exception of some package names that might
change.
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when
Cucumber-JVM
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working
on
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by John Lonergan
Post by alex.ikhelis
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google
Groups
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google
Groups
Post by aslak hellesoy
Post by Cedric Lamalle
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
Cédric.
[1] http://plugins.intellij.net/plugin/?id=1605
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-11 16:49:03 UTC
Permalink
On Thu, Aug 11, 2011 at 5:07 PM, Cedric Lamalle
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining the
thread. I'd like to participate in the development of this jvm version, to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish this part,
it still lacks the registering of Transform methods. I have some plans to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd like to
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
* Had to comment out a couple of lines in TransformerTest.java because
of compilation errors (not merge related I think). Can you take a look
at that?
I will take a look at it. Maybe I'm using a different  JDK version (6.0) or
something like that.
I believe I'm on 6.0 as well...
Post by aslak hellesoy
* I'm using IntelliJ, you're using Eclipse. It would be great if we
could use the same formatting settings. Any clues on this? (I'm using
the default settings).
I don't know what the default settings of IntelliJ are, but I can make a
configuration xml to use the same settiings in Eclipse. Maybe someone
already did it. Googling quickly I only found the inverse[1]. Will have a
look at it too. Or maybe I should simply switch to IntelliJ...
The most important is that we try to keep the diffs clean.

One more thing I remembered - if you're working on many different
features, it is easier for me if you keep a branch for each one. That
makes it easier to follow what's going on, do selective merging etc.
Post by aslak hellesoy
"Yup, that's exactly what I had planned to do". How did you figure out
what my plan was with Locales and argument transforms? Just by reading
a couple of TODOS? :-). Anyway, really awesome.
Yeah, I've read the TODOS while browsing the code. Using the Locale just
seemed natural for this kind of operation, and without locale the features
will be a lot less business friendly.
Post by aslak hellesoy
The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit runner
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.
I agree on the common part in cucumber.runtime, it could be useful too to
write plugins using cucumber. For instance, the maven plugin, a wiki plugin
(à la GreenPepper), etc.
Post by aslak hellesoy
Is there anything in particular you'd like to tackle next? Here are a
* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)
I was planning to continue the arguments part, tables and custom
transformers.
For the first one what I had in mind besides the regular tables was to use
the transformable parts to create rich objects, this would speed up the
|name     | birth date   | bonus points|
|john doe | 01/01/1970   | 10000       |
|mary doe | 01/01/1970   | 15700       |
The specialiazed table in the step implementation would return a list of
public class User {
    private String name;
    private Date birthDate;
    private Integer bonusPoints;
    // ....
}
Nice - this is something I have wanted for a long time. So the stepdef would be:

@Given(...)
public void registeredUsers(List<User> users) {
}

How would Cucumber know what columns to use for what arguments? IIRC
we can't get method/ctor parameter names with reflection (unless we
use hacks like paranamer). I think positional arguments might be good
enough, but it does introduce a little risk if someone (a
non-technical feature writer) swaps two columns to improve
readability. Not sure here...

BTW, what do you think about this:

@Given(...)
public void registeredUsers(Table<User> users) {
}

public class cucumber.Table<T> extends ArrayList<T> {
public void diff(List<T> other);
}
For the second part (Custom Transformers), it would be great to think in a
modular way of metadata processing, to delegate the registration part to
annotations.
How about this:

Given a user named Cédric

@Given("a user named (.*)")
public void aUser(User user) {
// Cucumber creates the User just like it would for table rows.
}

alternatively:

@Given("a user named (.*)")
public void aUser(@Transform(MyUserTransformer.class) User user) {
// Cucumber creates the User like so: User user = new
MyUserTransformer().transform(arg1);
}
@Before.
That's the way it's done in Cuke4Duke already. Needs to support tags
as well. It would also be nice to be able to pass an optional argument
to a hook (like in Ruby):

@After("@mytag")
public void doIt(Scenario scenario) {
// Exit after first failure
if(scenario.isFailed()) {
Cucumber.stop();
}
}

-similar to this:
http://groups.google.com/group/cukes/browse_thread/thread/7ce3278ace15403b/a678b1eb27cda618?lnk=gst&q=wants_to_quit#a678b1eb27cda618

Aslak
What do you think?
Post by aslak hellesoy
Anything else?
Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
On Tue, Aug 9, 2011 at 9:59 PM, John Lonergan
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
Cédric.
[1] http://plugins.intellij.net/plugin/?id=1605
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Cedric Lamalle
2011-08-12 00:20:42 UTC
Permalink
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 5:07 PM, Cedric Lamalle
Post by Cedric Lamalle
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm
joining
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
the
thread. I'd like to participate in the development of this jvm
version,
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish
this
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
part,
it still lacks the registering of Transform methods. I have some
plans
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for
instance.
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2],
or
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
deploying directly to this nexus instance. I could help with this
too.
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd like
to
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
* Had to comment out a couple of lines in TransformerTest.java because
of compilation errors (not merge related I think). Can you take a look
at that?
I will take a look at it. Maybe I'm using a different JDK version (6.0)
or
Post by Cedric Lamalle
something like that.
I believe I'm on 6.0 as well...
I've seen that you already fixed it!
Post by Cedric Lamalle
Post by aslak hellesoy
* I'm using IntelliJ, you're using Eclipse. It would be great if we
could use the same formatting settings. Any clues on this? (I'm using
the default settings).
I don't know what the default settings of IntelliJ are, but I can make a
configuration xml to use the same settiings in Eclipse. Maybe someone
already did it. Googling quickly I only found the inverse[1]. Will have a
look at it too. Or maybe I should simply switch to IntelliJ...
The most important is that we try to keep the diffs clean.
Default in IntelliJ is to use 120 columns and only spaces (4, no tab), I
have configured eclipse that way to avoid headaches.
Post by aslak hellesoy
One more thing I remembered - if you're working on many different
features, it is easier for me if you keep a branch for each one. That
makes it easier to follow what's going on, do selective merging etc.
OK.
Post by Cedric Lamalle
Post by aslak hellesoy
"Yup, that's exactly what I had planned to do". How did you figure out
what my plan was with Locales and argument transforms? Just by reading
a couple of TODOS? :-). Anyway, really awesome.
Yeah, I've read the TODOS while browsing the code. Using the Locale just
seemed natural for this kind of operation, and without locale the
features
Post by Cedric Lamalle
will be a lot less business friendly.
Post by aslak hellesoy
The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit runner
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.
I agree on the common part in cucumber.runtime, it could be useful too to
write plugins using cucumber. For instance, the maven plugin, a wiki
plugin
Post by Cedric Lamalle
(à la GreenPepper), etc.
Post by aslak hellesoy
Is there anything in particular you'd like to tackle next? Here are a
* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)
I was planning to continue the arguments part, tables and custom
transformers.
For the first one what I had in mind besides the regular tables was to
use
Post by Cedric Lamalle
the transformable parts to create rich objects, this would speed up the
|name | birth date | bonus points|
|john doe | 01/01/1970 | 10000 |
|mary doe | 01/01/1970 | 15700 |
The specialiazed table in the step implementation would return a list of
public class User {
private String name;
private Date birthDate;
private Integer bonusPoints;
// ....
}
@Given(...)
public void registeredUsers(List<User> users) {
}
How would Cucumber know what columns to use for what arguments? IIRC
we can't get method/ctor parameter names with reflection (unless we
use hacks like paranamer). I think positional arguments might be good
enough, but it does introduce a little risk if someone (a
non-technical feature writer) swaps two columns to improve
readability. Not sure here...
I was thinking of calling setters with reflection after instantiating the
class. in the example I gave, User class would have setName, setBirthDate,
setBonusPoints that could be easily be called. Anyway, I'll concentrate
first on getting regular tables working. We can discuss this later.
Post by aslak hellesoy
@Given(...)
public void registeredUsers(Table<User> users) {
}
public class cucumber.Table<T> extends ArrayList<T> {
public void diff(List<T> other);
}
Post by Cedric Lamalle
For the second part (Custom Transformers), it would be great to think in
a
Post by Cedric Lamalle
modular way of metadata processing, to delegate the registration part to
annotations.
Given a user named Cédric
@Given("a user named (.*)")
public void aUser(User user) {
// Cucumber creates the User just like it would for table rows.
}
@Given("a user named (.*)")
// Cucumber creates the User like so: User user = new
MyUserTransformer().transform(arg1);
}
Yes, annotating parameters is a good idea.
Post by aslak hellesoy
Post by Cedric Lamalle
@Before.
That's the way it's done in Cuke4Duke already. Needs to support tags
as well. It would also be nice to be able to pass an optional argument
@After("@mytag")
public void doIt(Scenario scenario) {
// Exit after first failure
if(scenario.isFailed()) {
Cucumber.stop();
}
}
http://groups.google.com/group/cukes/browse_thread/thread/7ce3278ace15403b/a678b1eb27cda618?lnk=gst&q=wants_to_quit#a678b1eb27cda618
Supporting tag is important and knowing if a scenario failed is useful too.
Another use case I see would be taking a screenshot after a failed gui test
(@guitest).

Bye,
Cédric.
Post by aslak hellesoy
Aslak
Post by Cedric Lamalle
What do you think?
Post by aslak hellesoy
Anything else?
Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
On Tue, Aug 9, 2011 at 9:59 PM, John Lonergan
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to
part
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while
doing
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and
JBehave)
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the
"below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing
cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and
we
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
are
uncertain about how reliable cuke4duke is now. Question based
on
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
the
reply from Aslak below - are we safe to start using it and then
expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will
probably
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm
working on
a pure Java replacement that I hope to release in 2-3 months.
The
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google
Groups
Post by Cedric Lamalle
Post by aslak hellesoy
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
Cédric.
[1] http://plugins.intellij.net/plugin/?id=1605
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-12 00:54:55 UTC
Permalink
This post might be inappropriate. Click to display it.
Cedric Lamalle
2011-08-12 02:54:18 UTC
Permalink
Post by aslak hellesoy
On Fri, Aug 12, 2011 at 1:20 AM, Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 5:07 PM, Cedric Lamalle
Post by Cedric Lamalle
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining
the
thread. I'd like to participate in the development of this jvm version,
to
help speed up the release and to give back a little to the
cucumber
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
community.
I have made a fork on github and made some pull requests there.
I've
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
worked
in the conversion part (transformables), and I am close to finish this
part,
it still lacks the registering of Transform methods. I have some plans
to
make this registering part more modular, mapping annotations with
register
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central
to
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have
managed
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing)
so
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository
[2],
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would
be
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd
like
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
to
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of
the
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
project.
Like you have done is fine! Fork, hack, push, send pull request.
Ok, I just merged your code and pushed to cucumber's repo. A couple
of
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
* Had to comment out a couple of lines in TransformerTest.java
because
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
of compilation errors (not merge related I think). Can you take a
look
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
at that?
I will take a look at it. Maybe I'm using a different JDK version
(6.0)
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
or
something like that.
I believe I'm on 6.0 as well...
I've seen that you already fixed it!
Yeah, it turned out to be easy. Primirive return values like boolean
didn't go down well, only Boolean (which gets boxed back to boolean if
needed).
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
* I'm using IntelliJ, you're using Eclipse. It would be great if we
could use the same formatting settings. Any clues on this? (I'm using
the default settings).
I don't know what the default settings of IntelliJ are, but I can make
a
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
configuration xml to use the same settiings in Eclipse. Maybe someone
already did it. Googling quickly I only found the inverse[1]. Will
have
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
a
look at it too. Or maybe I should simply switch to IntelliJ...
The most important is that we try to keep the diffs clean.
Default in IntelliJ is to use 120 columns and only spaces (4, no tab), I
have configured eclipse that way to avoid headaches.
Post by aslak hellesoy
One more thing I remembered - if you're working on many different
features, it is easier for me if you keep a branch for each one. That
makes it easier to follow what's going on, do selective merging etc.
OK.
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
"Yup, that's exactly what I had planned to do". How did you figure
out
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
what my plan was with Locales and argument transforms? Just by
reading
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
a couple of TODOS? :-). Anyway, really awesome.
Yeah, I've read the TODOS while browsing the code. Using the Locale
just
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
seemed natural for this kind of operation, and without locale the features
will be a lot less business friendly.
Post by aslak hellesoy
The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit
runner
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.
I agree on the common part in cucumber.runtime, it could be useful too to
write plugins using cucumber. For instance, the maven plugin, a wiki plugin
(à la GreenPepper), etc.
Post by aslak hellesoy
Is there anything in particular you'd like to tackle next? Here are a
* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)
I was planning to continue the arguments part, tables and custom
transformers.
For the first one what I had in mind besides the regular tables was to use
the transformable parts to create rich objects, this would speed up
the
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
|name | birth date | bonus points|
|john doe | 01/01/1970 | 10000 |
|mary doe | 01/01/1970 | 15700 |
The specialiazed table in the step implementation would return a list
of
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
public class User {
private String name;
private Date birthDate;
private Integer bonusPoints;
// ....
}
@Given(...)
public void registeredUsers(List<User> users) {
}
How would Cucumber know what columns to use for what arguments? IIRC
we can't get method/ctor parameter names with reflection (unless we
use hacks like paranamer). I think positional arguments might be good
enough, but it does introduce a little risk if someone (a
non-technical feature writer) swaps two columns to improve
readability. Not sure here...
I was thinking of calling setters with reflection after instantiating the
class. in the example I gave, User class would have setName,
setBirthDate,
Post by aslak hellesoy
setBonusPoints that could be easily be called. Anyway, I'll concentrate
first on getting regular tables working. We can discuss this later.
Awesome. I felt a little bad for going over and refactoring your code
since you had said you wanted to continue with this. I'll be AFK for a
few days, so just hack on whatever you think is useful. You seem to be
thinking along the same lines as me, so I'm sure it will be great.
No problem at all! As a coincidence I was looking at the Cli class and
wanted to refactor it using jcommander (it's already a dependency of core),
that way the cli will be documented. I've already created a cli-jcommander
branch for this. I've created a tables branch to start working on the Table
stuff we already talked about.
Post by aslak hellesoy
One more (unrelated) thing I have been pondering is better JUnit
a feature. What if a user wants to run a single scenario? We could
scenario name (or line number) of the corresponding Gherkin scenario
(or scenario outline table row even). That would allow people to run a
single scenario/scenario outline row.
Writing these JUnit classes by hand is impractical, so I think we
might need a code generator to generate them from Gherkin. This is not
ideal either, but I can't think of a better way right now. Maybe
Cucumber could generate them automatically every time it runs. An
alternative (when working in an IDE at least) is to implement an
IntelliJ/Eclipse/NetBeans plugin that allows users to run a feature or
scenario without the need for a JUnit file. Results could be displayed
right in the editor window, colouring rows green, yellow, red or cyan
(like console output). This would probably use the CLI underneath,
just with an IDE-specific formatter. I started on an IntelliJ plugin a
while back before cucumber-jvm came to the more mature stage it's at
now. Maybe it's time to push it to Github and give it some love.
For someone wanting to run a particular scenario I think that IDE
integration is the easiest way, selecting the scenario directly from the
feature file.
For a developer to run only the scenario he's working on, maybe another
annotation along with @RUnWith to filter scenarios by tag would do the
trick:
@RunWith(Cucumber.class)
@ForTags("@current")
public class TestClass {
//...
}
That way the developer can annotate the scenarios he's working on. My 2
cents.
Post by aslak hellesoy
Anyway, just rambling with ideas here. Do you have any thoughts about
how we can make Cucumber-jvm easy to use?
Not for the moment, but the more mature it will become, the more ideas will
come!
Post by aslak hellesoy
I'm very excited to have you as a contributor to cucumber-jvm. It's
long overdue, and having someone to help and bounce off ideas with
will help making it mature quickly I think.
I'm glad to help!
Post by aslak hellesoy
Post by aslak hellesoy
Post by aslak hellesoy
@Given(...)
public void registeredUsers(Table<User> users) {
}
public class cucumber.Table<T> extends ArrayList<T> {
public void diff(List<T> other);
}
Post by Cedric Lamalle
For the second part (Custom Transformers), it would be great to think
in
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
a
modular way of metadata processing, to delegate the registration part
to
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
another class. In this case a class to register methods with
@Transform
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
annotations.
Given a user named Cédric
@Given("a user named (.*)")
public void aUser(User user) {
// Cucumber creates the User just like it would for table rows.
}
@Given("a user named (.*)")
// Cucumber creates the User like so: User user = new
MyUserTransformer().transform(arg1);
}
Yes, annotating parameters is a good idea.
Cool. Registering MethodTransforms is another option, but I think we
should provide several ways to turn strings into an object, and see
what people prefer.
Aslak
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
@Before.
That's the way it's done in Cuke4Duke already. Needs to support tags
as well. It would also be nice to be able to pass an optional argument
@After("@mytag")
public void doIt(Scenario scenario) {
// Exit after first failure
if(scenario.isFailed()) {
Cucumber.stop();
}
}
http://groups.google.com/group/cukes/browse_thread/thread/7ce3278ace15403b/a678b1eb27cda618?lnk=gst&q=wants_to_quit#a678b1eb27cda618
Post by aslak hellesoy
Supporting tag is important and knowing if a scenario failed is useful
too.
Post by aslak hellesoy
Another use case I see would be taking a screenshot after a failed gui
test
There are many ways to take screenshots. Selenium has a separate cross
platform (I think) API for taking screenshots of the browser. Windows,
OS X and Linux (in various flavours) also has native mechanisms for
taking a screenshot of the entire screen. I don't think this should be
built into Cucumber. Instead, we can provide docs (or maybe plugins)
to help people take the kind of screenshots they want.
I totally agree that this not Cucumber role to take screenshot, I was just
illustrating a way to use to an After hook with a failed scenario.
Cédric.
Post by aslak hellesoy
Bye,
Post by aslak hellesoy
Cédric.
Post by aslak hellesoy
Aslak
Post by Cedric Lamalle
What do you think?
Post by aslak hellesoy
Anything else?
Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code
review
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
process?
Not more formal than me looking at your commits, possibly
commenting
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff
in
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
next week. Am to busy before that. Let's discuss the road ahead
next
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
On Tue, Aug 9, 2011 at 9:59 PM, John Lonergan
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with
the
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to
part
ways.
Cucumber has evolved into a much bigger community than JBehave,
and
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
one of the exciting things we're doing is to have a shared
Gherkin
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen
JVM
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE
product
code base. We are in the process of choosing a BDD tool for
the
"below
the UI" levels of testing , which allows smooth access to
our
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
java
code / interpreted in jvm. We started to look into JBehave
and
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
cuke4duke. The latter seems to allow us reuse our existing
cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue
on
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation
and
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
we
are
uncertain about how reliable cuke4duke is now. Question
based
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
on
the
reply from Aslak below - are we safe to start using it and
then
expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will
probably
be
identical with the exception of some package names that might
change.
There is likely to be some other changes, but I can't tell
what
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when
Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm
working on
a pure Java replacement that I hope to release in 2-3
months.
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the
Google
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
Cédric.
[1] http://plugins.intellij.net/plugin/?id=1605
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google
Groups
Post by aslak hellesoy
Post by aslak hellesoy
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
aslak hellesoy
2011-08-11 19:52:06 UTC
Permalink
On Thu, Aug 11, 2011 at 5:07 PM, Cedric Lamalle
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm joining the
thread. I'd like to participate in the development of this jvm version, to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish this part,
it still lacks the registering of Transform methods. I have some plans to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for instance.
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2], or
deploying directly to this nexus instance. I could help with this too.
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd like to
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
* Had to comment out a couple of lines in TransformerTest.java because
of compilation errors (not merge related I think). Can you take a look
at that?
I will take a look at it. Maybe I'm using a different  JDK version (6.0) or
something like that.
Post by aslak hellesoy
* I'm using IntelliJ, you're using Eclipse. It would be great if we
could use the same formatting settings. Any clues on this? (I'm using
the default settings).
I don't know what the default settings of IntelliJ are, but I can make a
configuration xml to use the same settiings in Eclipse. Maybe someone
already did it. Googling quickly I only found the inverse[1]. Will have a
look at it too. Or maybe I should simply switch to IntelliJ...
Post by aslak hellesoy
"Yup, that's exactly what I had planned to do". How did you figure out
what my plan was with Locales and argument transforms? Just by reading
a couple of TODOS? :-). Anyway, really awesome.
Yeah, I've read the TODOS while browsing the code. Using the Locale just
seemed natural for this kind of operation, and without locale the features
will be a lot less business friendly.
Post by aslak hellesoy
The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit runner
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.
I agree on the common part in cucumber.runtime, it could be useful too to
write plugins using cucumber. For instance, the maven plugin, a wiki plugin
(à la GreenPepper), etc.
Post by aslak hellesoy
Is there anything in particular you'd like to tackle next? Here are a
* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)
I was planning to continue the arguments part, tables and custom
transformers.
For the first one what I had in mind besides the regular tables was to use
the transformable parts to create rich objects, this would speed up the
|name     | birth date   | bonus points|
|john doe | 01/01/1970   | 10000       |
|mary doe | 01/01/1970   | 15700       |
The specialiazed table in the step implementation would return a list of
public class User {
    private String name;
    private Date birthDate;
    private Integer bonusPoints;
    // ....
}
I have done some refactorings to the transformer stuff in my fork.
Hope you like it!

Aslak
For the second part (Custom Transformers), it would be great to think in a
modular way of metadata processing, to delegate the registration part to
@Before.
What do you think?
Post by aslak hellesoy
Anything else?
Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
On Tue, Aug 9, 2011 at 9:59 PM, John Lonergan
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to part ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while doing
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and JBehave)
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will probably be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
Cédric.
[1] http://plugins.intellij.net/plugin/?id=1605
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Cedric Lamalle
2011-08-12 00:23:03 UTC
Permalink
Great, *Transformer is better than *Transformable!
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 5:07 PM, Cedric Lamalle
Post by Cedric Lamalle
Post by aslak hellesoy
On Thu, Aug 11, 2011 at 1:26 AM, aslak hellesoy
Post by aslak hellesoy
On Wed, Aug 10, 2011 at 2:50 AM, Cedric Lamalle
Post by Cedric Lamalle
Hi,
Since there seem to have some interest about Cucumber-Jvm, I'm
joining
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
the
thread. I'd like to participate in the development of this jvm
version,
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
to
help speed up the release and to give back a little to the cucumber
community.
I have made a fork on github and made some pull requests there. I've worked
in the conversion part (transformables), and I am close to finish
this
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
part,
it still lacks the registering of Transform methods. I have some
plans
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
to
make this registering part more modular, mapping annotations with register
classes. This could be useful for registering Hooks too, for
instance.
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
It would be great too to have the jars deployed on maven central to simplify
adoption of the tool.
That's on the radar. It's a fairly heavy process, but I have managed
to do it once (https://github.com/joewalnes/webbit/wiki/Releasing) so
I could do it again :-)
Post by Cedric Lamalle
This will need a little cleaning in the poms [1] and
could be done by uploading the jars to sonatype oss repository [2],
or
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
deploying directly to this nexus instance. I could help with this
too.
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Awesome. I guess step 1 is to file a JIRA ticket, right? It would be
awesome if you could do that.
The groupId can be cukes.info and the artifactId cucumber. I'd like
to
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
keep the cucumber.* package name. Would that work?
Post by Cedric Lamalle
What I would like to know is how is the contributing process of the project.
Like you have done is fine! Fork, hack, push, send pull request.
* Had to comment out a couple of lines in TransformerTest.java because
of compilation errors (not merge related I think). Can you take a look
at that?
I will take a look at it. Maybe I'm using a different JDK version (6.0)
or
Post by Cedric Lamalle
something like that.
Post by aslak hellesoy
* I'm using IntelliJ, you're using Eclipse. It would be great if we
could use the same formatting settings. Any clues on this? (I'm using
the default settings).
I don't know what the default settings of IntelliJ are, but I can make a
configuration xml to use the same settiings in Eclipse. Maybe someone
already did it. Googling quickly I only found the inverse[1]. Will have a
look at it too. Or maybe I should simply switch to IntelliJ...
Post by aslak hellesoy
"Yup, that's exactly what I had planned to do". How did you figure out
what my plan was with Locales and argument transforms? Just by reading
a couple of TODOS? :-). Anyway, really awesome.
Yeah, I've read the TODOS while browsing the code. Using the Locale just
seemed natural for this kind of operation, and without locale the
features
Post by Cedric Lamalle
will be a lot less business friendly.
Post by aslak hellesoy
The next big task is to implement a CLI so cucumber can run without
JUnit. Some languages don't use JUnit at all (Clojure for example). I
have started on this, and I'd like the CLI runner and the JUnit runner
to share the same guts. I'm planning on sticking the common part in
cucumber.runtime, and have cucumber.junit and cucumber.cli use it.
Right now it's all in cucumber.junit.
I agree on the common part in cucumber.runtime, it could be useful too to
write plugins using cucumber. For instance, the maven plugin, a wiki
plugin
Post by Cedric Lamalle
(à la GreenPepper), etc.
Post by aslak hellesoy
Is there anything in particular you'd like to tackle next? Here are a
* Implement cucumber.Table. It should have a similar API to the Ruby
counterpart. Constructor takes a List<Row> object. Diffing would be
awesome.
* Add support for Hooks
* Add support for Background (should run after any Before hooks)
I was planning to continue the arguments part, tables and custom
transformers.
For the first one what I had in mind besides the regular tables was to
use
Post by Cedric Lamalle
the transformable parts to create rich objects, this would speed up the
|name | birth date | bonus points|
|john doe | 01/01/1970 | 10000 |
|mary doe | 01/01/1970 | 15700 |
The specialiazed table in the step implementation would return a list of
public class User {
private String name;
private Date birthDate;
private Integer bonusPoints;
// ....
}
I have done some refactorings to the transformer stuff in my fork.
Hope you like it!
Aslak
Post by Cedric Lamalle
For the second part (Custom Transformers), it would be great to think in
a
Post by Cedric Lamalle
modular way of metadata processing, to delegate the registration part to
@Before.
What do you think?
Post by aslak hellesoy
Anything else?
Cheers,
Aslak
Post by aslak hellesoy
Post by Cedric Lamalle
Do you accept external contributions? Is there a formal code review process?
Not more formal than me looking at your commits, possibly commenting
on some of them and then merging it to the main repo.
I really like your code, so I hope to be able to merge your stuff in
next week. Am to busy before that. Let's discuss the road ahead next
week!
Thanks for helping out!
Aslak
Post by Cedric Lamalle
Cheers,
Cédric.
[1]
https://docs.sonatype.org/display/Repository/Central+Sync+Requirementshttp://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
[2]
http://maven.apache.org/guides/mini/guide-central-repository-upload.html#Publishing_your_artifacts_to_the_Central_Repository
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
On Tue, Aug 9, 2011 at 9:59 PM, John Lonergan
Post by John Lonergan
Aslak,
I assume you have considered the option of collaborating with the
JBehave folk?
What were your thoughts on this.
I considered it early on, and we discussed it. We both agreed to
part
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
ways.
Cucumber has evolved into a much bigger community than JBehave, and
one of the exciting things we're doing is to have a shared Gherkin
parser and test suite (in Cucumber) for various programming language
implementations. Collaborating with a different community while
doing
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
this would impractical. Cucumber-JVM will support a half dozen JVM
languages (making it easy to add more).
I know the JBehave folks well. Dan North (who started BDD and
JBehave)
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
sits next to me in the office!
Aslak
Post by John Lonergan
On Tue, Aug 9, 2011 at 4:54 PM, alex.ikhelis
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the
"below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing
cucumber/
ruby infrastructure.
That's right. It's essentially some Java/Groovy/Scala ++ glue on top
of (Ruby)Cucumber and JRuby
Post by alex.ikhelis
However it is difficult to find descriptive documentation and
we
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
are
uncertain about how reliable cuke4duke is now. Question based
on
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
the
reply from Aslak below - are we safe to start using it and then
expect
a smooth migration to pure java implementation?
That depends what you mean by "safe". I don't plan on changing
Cuke4Duke going forward. I know people are using it with success.
Cucumber-JVM will be compatible on the Gherkin/Feature level, you
won't have to change anything there. StepDefinitions will
probably
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
be
identical with the exception of some package names that might change.
There is likely to be some other changes, but I can't tell what they
are as Cucumber-JVM is not released yet.
All in all I'd say "somewhat risky" as I don't know when Cucumber-JVM
will be released or how different it will be.
Aslak
Post by alex.ikhelis
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm
working on
a pure Java replacement that I hope to release in 2-3 months.
The
Post by Cedric Lamalle
Post by aslak hellesoy
Post by aslak hellesoy
Post by Cedric Lamalle
Post by John Lonergan
Post by alex.ikhelis
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google
Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google
Groups
Post by Cedric Lamalle
Post by aslak hellesoy
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
Cédric.
[1] http://plugins.intellij.net/plugin/?id=1605
--
You received this message because you are subscribed to the Google Groups
"Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+***@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Andrew Premdas
2011-08-10 01:40:16 UTC
Permalink
Post by alex.ikhelis
Hi there!
We are using cucumber for UI level tests against a big J2EE product
code base. We are in the process of choosing a BDD tool for the "below
the UI" levels of testing , which allows smooth access to our java
code / interpreted in jvm. We started to look into JBehave and
cuke4duke. The latter seems to allow us reuse our existing cucumber/
ruby infrastructure.
I'm interested to know what you mean by
"below the UI" levels of testing

In particular why is this level not covered by unit tests e.g. junit. You
seem to be suggesting there are at least 3 levels of testing you need unit,
middle, ui/acceptance. What differentiates the middle level

Many thanks

Andrew
Post by alex.ikhelis
However it is difficult to find descriptive documentation and we are
uncertain about how reliable cuke4duke is now. Question based on the
reply from Aslak below - are we safe to start using it and then expect
a smooth migration to pure java implementation?
Best reagrds,
Alex Ikhelis,
SDET Expedia.Com
---------- Forwarded message ----------
Date: 9 August 2011 13:17
Subject: Re: cuke4duke query
Hi Ajay,
Cuke4Duke is in maintenance mode, and not very active. I'm working on
a pure Java replacement that I hope to release in 2-3 months. The
https://github.com/cucumber/cuke4duke/wiki
http://groups.google.com/group/cukes
Cheers,
Aslak
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To unsubscribe from this group, send email to
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.
--
------------------------
Andrew Premdas
blog.andrew.premdas.org
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Dmitriy Korobskiy
2011-08-10 02:15:56 UTC
Permalink
Post by Andrew Premdas
In particular why is this level not covered by unit tests e.g. junit.
You seem to be suggesting there are at least 3 levels of testing you
need unit, middle, ui/acceptance. What differentiates the middle level
Many thanks
Andrew
I define fir myself:

1. unit testing: white box "client-side" tests, testing one layer of
code, potentially with mocks (JUnit, etc.)
2. integration/system testing: white box testing of deployed system,
hitting the code through the layers, no mocks (Cactus, etc.)
3. acceptance/feature testing: black box testing of deployed system from
a user perspective (Cucumber, Watir, etc.)

These lines could be blurry sometimes.
--
DK
AIM: DKroot1, Skype: DKroot
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cukes-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to cukes+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Loading...