-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
android instrumentation refactor #766
android instrumentation refactor #766
Conversation
Additional questions which popped up while I was doing the refactor:
|
@SierraGolf I'm a little curious why you say the the android module is not part of the released artefacts, in Maven Central the cucumber-android module is available in v1.1.4-v1.1.8. |
@brasmusson sorry but can you provide me a link? I wonder how the android module can be released, because it is not part of the defined modules of cucumber-jvm, it actually never was. |
http://search.maven.org/#search%7Cga%7C1%7Ccucumber-android
The release process is documented in CONTRIBUTING.md
It's defined in pom.xml and according to git blame and Maven central it has been since 1.1.4 (Aug 2013). |
my bad. I actually only checked the first result page when searching for "cucumber". sorry for that. while I have your attention, what do you guys think about this PR? |
It's a big refactoring, and I haven't had time to look at it yet. Recently I have started to spend Fridays to work full time on Cucumber-JVM (and other Cucumber-related open source projects) and I'll do my best to go through it and give feedback in the next couple of Fridays. You know more about Android than I do, so I'll mostly be looking at whether the changes make sense overall. Cheers, |
Ok, thanks. I am looking forward to your feedback. |
@aslakhellesoy thanks for merging, but could you maybe take some time going through the questions I posted? thanks! |
|
@brasmusson thanks for taking the time. I will create pull requests for 1. and 2. |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
The main target of this refactor was to split up the rather complex logics inside the
CucumberInstrumentationCore
in order to have a better maintainability of that piece of code and to be able to throw in some test coverage.In order to do that I separated out the different concerns the class was previously handling into separate classes which are now being utilised/orchestrated by the
CucumberInstrumentationCore
. The following aspects were extracted into their respective classes:Arguments
(previously known asInstrumentationArguments
CucumberExecutor
CoverageDumper
DebuggerWaiter
Aside from moving around code and adding test coverage these are the most notable changes which happened during the refactor:
InstrumentationArguments
got renamed toArguments
AndroidResourceLoader
has been simplifiedAndroidLogcatReporter
Arguments
class does not hold a reference to theBundle
anymore, but extracts all data once and is a pojo afterwardsDexFile
sCucumberInstrumentationCore
methodsonCreate
andonStart
have been renamed tocreate
andstart
, because those methods are not callbacks but should be called in those callbacks