thanks so much Taher for the explaining it further, makes perfect sense.
Best regards, Pranay Pandey HotWax Systems http://www.hotwaxsystems.com/ On Wed, Jun 8, 2016 at 3:02 PM, Taher Alkhateeb <slidingfilame...@gmail.com> wrote: > Hi Pranay, > > What you are talking about is integration tests (ones that you can run per > component) > > Unit tests do not need to be run per component. The entire unit test > library for the entire framework should run in probably less than 5 > seconds. So there is no need to make them run per component. > > My proposal is to simply have a target like run-unit-tests which would run > all the unit tests. These tests do not talk to the database or server or > anything, You can run them while flying in an airplane 30,000 feet above > the ocean. > > Mind you I will not remove the integration tests, I'm just adding unit > tests (and probably moving some integration tests to unit tests). > > Naturally, my proposition means that those tests are only JUnit tests (for > now) but that is a quick solution that I think is rather clean because > we're not really radically modifying anything, we're just adding JUnit > classes and running them. > > Regards, > > Taher Alkhateeb > > On Wed, Jun 8, 2016 at 12:23 PM, Pranay Pandey < > pranay.pan...@hotwaxsystems.com> wrote: > > > Hi Taher, > > > > There is one thing that I want to confirm based my understanding, as long > > as I know, we can run tests independently as well e.g. > > > > *Running tests for a component: * > > > > java -jar ofbiz.jar -test component=‘order’ > > > > *Running a specific test Suite from a component:* > > > > ant run-single-test-suite -Dtest.component=‘order’ -Dtest.suiteName=' > > ordertests' > > > > *Running a test case from a component:* > > > > java -jar ofbiz.jar -test -component='order' -case='salesOrder-test' > > > > I may be completely wrong here but just want to confirm and understand > your > > proposal. > > > > Best regards, > > > > Pranay Pandey > > HotWax Systems > > http://www.hotwaxsystems.com/ > > > > On Wed, 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 > > > > > >