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 >> > >> > >> > >