It sounds a reasonable approach to me.
Especially because it will let you proceed with the important work you are
contributing without loosing the momentum to study old configuration code
that would require some cleanups regardless.

Thanks,

Jacopo

On Fri, Jun 10, 2016 at 4:16 PM, Taher Alkhateeb <slidingfilame...@gmail.com
> wrote:

> Hello Everyone,
>
> I was able to get a few tests running and this is very doable. But I faced
> a big problem in designing the testing framework because of ANT.
>
> The problem
> ----------------
> The way the build scripts are designed in OFBiz are very complex. A master
> file calls other files which call other files. And in the middle you have
> external libraries (ant-contrib) and macros, and variables, and class path
> declarations, and and and ....
>
> I cannot declare the tests programmatically (with JUnit test suites)
> because this means lower level components would depend on higher level
> components. So I have to do it in ANT, by navigating this maze of build
> scripts, and it was a headache for me just to read them, let alone modify
> them to create a testing framework.
>
> Suggested Solution
> ------------------------
> I suggest to implement the testing framework in Gradle, and simply call it
> from within ant. This is a middle solution that sustains ant for now, but
> can allow us to switch out later.
>
> This means I will just add one more file called build.gradle in the top
> level directory, and figure out the business logic for calling the test
> suites from that file
>
> I look forward to your feedback.
>
> Regards,
>
> Taher Alkhateeb
>
> On Wed, Jun 8, 2016 at 6:00 PM, Taher Alkhateeb <
> slidingfilame...@gmail.com>
> wrote:
>
> > Hi Everyone,
> >
> > Thank you all for your support, JIRA created in
> > https://issues.apache.org/jira/browse/OFBIZ-7254
> >
> > I will start working on it and try to implement ASAP to get my focus back
> > on refactoring.
> >
> > Cheers!
> >
> > Taher Alkhateeb
> >
> > On Wed, Jun 8, 2016 at 4:58 PM, Deepak Dixit <
> > deepak.di...@hotwaxsystems.com> wrote:
> >
> >> +1
> >>
> >> Thanks & Regards
> >> --
> >> Deepak Dixit
> >> www.hotwaxsystems.com
> >>
> >> On Wed, Jun 8, 2016 at 7:12 PM, Mridul Pathak <
> >> mridul.pat...@hotwaxsystems.com> wrote:
> >>
> >> > +1
> >> >
> >> > Makes perfect sense.
> >> >
> >> > --
> >> > Thanks & Regards,
> >> > Mridul Pathak
> >> > Senior Manager
> >> > HotWax Systems
> >> > http://www.hotwaxsystems.com
> >> >
> >> > > On Jun 8, 2016, at 2:41 PM, Taher Alkhateeb <
> >> slidingfilame...@gmail.com>
> >> > wrote:
> >> > >
> >> > > Hello Everyone,
> >> > >
> >> > > After refactoring the start component and while starting on the base
> >> > > component I realized that the testing framework for OFBiz is not
> good.
> >> > You
> >> > > cannot do real test driven development or red-green-refactor with
> the
> >> > > current setup, hence my proposal to change it. I explain below:
> >> > >
> >> > > Problem with current design
> >> > > ----------------------------------------
> >> > > - What we have right now is not unit tests, it's really integration
> >> > tests.
> >> > > You have to start the framework, the database, the service engine,
> the
> >> > > entity engine and pretty much everything.
> >> > > - Testing is very slow, because it's an integration test as I
> >> mentioned
> >> > > above. 10 minutes on a good computer!
> >> > > - There is zero mocking! We actually have to --load-data for things
> to
> >> > > work. Again, these are integration tests.
> >> > > - Too complex: Integration tests by their nature are grabbing too
> >> much.
> >> > > Mind you, I am not objecting to integration tests (I actually like
> >> them)
> >> > > but I am objecting to not having real unit-tests. Unit tests should
> >> all
> >> > run
> >> > > in a few seconds.
> >> > >
> >> > > Proposed solution
> >> > > --------------------------
> >> > > - We keep what is considered real integration tests the way they are
> >> > right
> >> > > now and keep using them
> >> > > - We move what should be unit tests into simple JUnit classes, and
> we
> >> do
> >> > > not run them using java -jar ofbiz.jar --test, but instead run them
> >> > > directly from the build.xml script, so these files are not
> identified
> >> in
> >> > > any XML document, but are simply called immediately from the build
> >> > scripts.
> >> > > - We clearly mark the difference between integration tests and unit
> >> tests
> >> > > (inside the source files or in the suite declarations).
> >> > > - We change the run-tests target in build.xml to run both unit tests
> >> and
> >> > > integration tests.
> >> > >
> >> > > I intend to heavily refactor the framework and I would feel better
> >> about
> >> > > introducing this change while refactoring. What do you guys think?
> >> Ideas?
> >> > > Suggestions? Approvals and thumbs up?
> >> > >
> >> > > Regards,
> >> > >
> >> > > Taher Alkhateeb
> >> >
> >> >
> >>
> >
> >
>

Reply via email to