fourlastor / pickle Goto Github PK
View Code? Open in Web Editor NEWA code generating implementation of Cucumber for Android
License: MIT License
A code generating implementation of Cucumber for Android
License: MIT License
When 2 scenario names are the same, Pickle generates 2 methods with the same name. This causes compilation error in the generated code. Which is too late.
Ideally, it should warn the user with a clear message.
Cucumber released a support for a simpler expressions than using regexes to match for parameters.
It is documented in quite good details here: https://cucumber.io/docs/cucumber/cucumber-expressions/
Early this year, IntelliJ IDEA plugin was also updated to use this by default. What that means is that if you Option+Enter
to create Steps in java, it will put Cucumber Expressions by default and that will make Pickle fail.
Hi, I'm a logo designer and I can design a free logo for your project. So ,what do you think?
When strictMode is disabled, the errors are just ignored. Instead, it would be good if the annotation processor outputs the missing definitions as a warning.
See #18 (comment)
The newly added check for arguments mismatch in #12 has an indentation issue shown below. It is minor but would be good to fix.
error: Pickle Error:
Step definition argument mismatch.
> Step definition: "display network connection error message"
> Step implementation: com.example.login.LoginSteps.displayNetworkConnectionErrorMessage(java.lang.String)
2 errors
When using the AndroidStudio 3.4 Canary 10,
and having upgraded to Gradle 5.1-milestone-1,
the following error appears while building:
Caused by: java.lang.NoSuchMethodError: com.android.build.gradle.tasks.MergeSourceSetFolders.getOutputDir()Ljava/io/File;
at com.fourlastor.pickle.PicklePlugin$configure$1.execute(PicklePlugin.kt:115)
at com.fourlastor.pickle.PicklePlugin$configure$1.execute(PicklePlugin.kt:23)
at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:158)
at com.fourlastor.pickle.PicklePlugin.configure(PicklePlugin.kt:109)
at com.fourlastor.pickle.PicklePlugin.access$configure(PicklePlugin.kt:23)
at com.fourlastor.pickle.PicklePlugin$apply$1$1.execute(PicklePlugin.kt:96)
at com.fourlastor.pickle.PicklePlugin$apply$1$1.execute(PicklePlugin.kt:23)
at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:158)
at com.fourlastor.pickle.PicklePlugin$apply$1.execute(PicklePlugin.kt:87)
at com.fourlastor.pickle.PicklePlugin$apply$1.execute(PicklePlugin.kt:23)
Non-strict mode is not so obvious even after introducing a warning in #2
What about still generating the test but putting @Ignore
annotation on it? This will also show up in the IDEs and will make it super obvious for users.
docker run -it --rm -v "$(pwd)":/usr/local/src/your-app ferrarimarco/github-changelog-generator -u fourlastor -p pickle -t <GITHUB_TOKEN>
Cucumber Before/After methods are supported with pickle. When they are added into Steps
files, those before and after methods are just called manually before and after all methods.
They are called just inline in test methods.
But this means that any exception occurring during test execution will not call after
method because of the throwing.
Instead, Before/After methods should really be converted into jUnit Before
and After
methods in the generated code
Bad news! Plugin is no longer compatible with 5.2 because I used internal reflection utilities from Gradle in #7
The whole class JavaReflectionUtil
is completely changed into something much more smaller. ๐
I guess that's a good lesson learned.
Cucumber team just moved bunch of annotation to a different package. And Pickle fails to generate code when those annotations are used. Support both annotations.
By referencing to this document (https://cucumber.io/docs/gherkin/reference/), document the unsupported features.
Hey,
It is not so uncommon to have the following mistake:
@Given("^Backend Response for search will be successful$")
public void backendResponseForSearchWillBeSuccessful(String searchKey) {
In this case, the given sentence forget to include the regex to match the String
parameter. Processor gives a cryptic error (which is coming from parsing).
Here is the error we got
index 3 for '$S' not in range (received 2 arguments)
I'm not sure if it works in Kotlin Gradle DSL but below does not work with Groovy projects.
https://github.com/fourlastor/pickle/#configuration
pickle {
androidTest {
featuresDir = 'features' // location of features inside `androidTest/src/assets`
}
}
The error is:
> Could not find method androidTest() for arguments [setup_bdd_test_8aihs9lwmlmtcmk67w5u4oihx$_run_closure1$_closure4@6b3ad53c] on object of type com.fourlastor.pickle.PicklePlugin$Extension.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.