Hi Myrle / Markus, How do I find and run these integration tests; especially test-provisioner-identity-organization?
Thanks, Avik. ᐧ On Tue, Oct 3, 2017 at 11:59 AM Myrle Krantz <[email protected]> wrote: > Hey Sijo, > > I just wanted to add a few things to what Markus said: > > As long as issues are not tracked on the Apache JIRA, I suggest using > the github issues. We'll probably have to migrate them by hand, so I > hope it's not too many. > > As Markus said a component-test is a test which covers a single > service and covers it as a whole deployable unit. Integration tests > are any tests which cover more than one service. There are two kinds > of integration tests: those which include real provisioning and > identity management and those which only mock these. > > An example of an integration test which includes provisioning is: > https://github.com/mifosio/test-provisioner-identity-organization > An example of an integration test which mocks provisioning is: > https://github.com/mifosio/test-accounting-portfolio > > All of these rely on the same deployment mechanisms as the demo-server > project. So any improvements we can achieve for single-system > deployment for demo-server, will hopefully also improve the usability > of our integration tests. > > In general, I have not been very good about keeping the integration > tests up-to-date. I apologize in advance if (when) something is > broken. > > Regards, > Myrle > > > On Tue, Oct 3, 2017 at 12:28 AM, Markus Geiss <[email protected]> > wrote: > > so, we already offer the component-test with template project ... > > > > In addition to the component-tests which only test that module and all > > called services are mocked ... we also have integration tests (kudos to > > Myrle) that will spin up multiple services and do a full test from end to > > end ... we still need to enhance them and offer more integration tests, > but > > at least we have start. > > > > Currently we are proposing to bring CN to Fineract, so right now there is > > now attached Apache JIRA for it, but once it has passed the community all > > tasks/issues will be tickets in JIRA. > > > > On Mon, Oct 2, 2017 at 11:36 PM Sijo Cherian <[email protected]> > wrote: > > > >> Thanks Markus/Myrle. > >> > >> Since the architecture, inter-microservice communication pattern is all > new > >> to me, I am thinking: > >> > >> - if there is a small bug or task (does CN uses JIRA based > assignment?), > >> in say Office. > >> - or if you define a typical hypothetical bug and give me pointers on > >> how to test multiple micro services: I can work on a sample solution, > >> add > >> some documentation for other developers, and make it part of > "template" > >> project as a solve-this-bug-to-get-started exercise for new > developers. > >> > >> /s > >> > >> On Mon, Oct 2, 2017 at 5:08 PM, Markus Geiss <[email protected]> > >> wrote: > >> > >> > Hey Sijo, > >> > > >> > the purpose of a component-test is to do a module specific end-to-end > >> test. > >> > MariaDB, Cassandra, and Active MQ will be started in process. > >> > > >> > We consider this 'heavy tests' and they are different than regular > >> > unit-tests ... that's why we haven't place them under test ... > >> > > >> > We only have regular unit test where reasonable ... meaning if we do > some > >> > calculation or other kind of magic. > >> > > >> > Given the component-tests are resource hungry, executing can take > longer > >> > then the default 30sec timeout we use in the event recorder. It is > >> possible > >> > to set a longer timeout if needed. > >> > > >> > If you use IntelliJ the easiest is to import a project using the > gradle > >> > plugin ... in this case you only need to import the top level folder > of > >> the > >> > project ... given we use a composite build. > >> > > >> > Cheers > >> > > >> > Markus > >> > > >> > .::Yagni likes a DRY KISS::. > >> > > >> > On Mon, Oct 2, 2017 at 8:54 PM Sijo Cherian <[email protected]> > wrote: > >> > > >> > > Using IntelliJ > >> > > > >> > > In office, I generated ipr files (but this creates a new project per > >> > > CN-project..any better way to have all modules in one place) > >> > > > >> > > after adding this to build.gradle apply plugin: 'idea' > >> > > > >> > > ./gradlew idea > >> > > > >> > > Test works in office ! > >> > > > >> > > What is the concept of component-test? > >> > > Are they supposed to be a module under each of the micro service for > >> Test > >> > > code/artifacts? > >> > > I was expecting tests under src/test ( > >> > > component-test/src/main/java/io/mifos/office/TestEmployee.java) > >> > > > >> > > Only some of the project have gradle *test* task defined (are we not > >> > having > >> > > test yet, or is component-test the area for Tests?) > >> > > > >> > > ./gradlew tasks --all > >> > > > >> > > > >> > > > >> > > /thanks > >> > > > >> > > On Mon, Oct 2, 2017 at 1:52 PM, Myrle Krantz <[email protected]> > wrote: > >> > > > >> > > > Hi Sijo, > >> > > > > >> > > > Which IDE are you using? I'm using IntelliJ. In all honesty, I > >> never > >> > > > run the component tests from the commandline and I don't know if > it's > >> > > > possible. I sometimes have trouble in initialize when running > from > >> > > > the IDE, because it occasionally messes up and doesn't find the > >> > > > migrations, but based on your "Migrating schema" message, that's > not > >> > > > the problem. It's clearly finding the migrations. > >> > > > > >> > > > Have you tried running the tests on a service with less > dependencies? > >> > > > For example office? Do you get the same result? > >> > > > > >> > > > Best Regards, > >> > > > Myrle > >> > > > > >> > > > > >> > > > On Mon, Oct 2, 2017 at 7:28 PM, Sijo Cherian <[email protected] > > > >> > > wrote: > >> > > > > Hi All, > >> > > > > > >> > > > > I am able to run tests in say core/api but not in non-core > >> projects. > >> > > > > What is the right way to run fineract-CN Tests in higher level > >> > > projects? > >> > > > > Are there some precondition /startup needed? > >> > > > > > >> > > > > Running test in deposit-account-management/component-test > >> > > > > *On running from IDE *TestAccrual.shouldAccrueInterest > >> > > > > ... > >> > > > > spring boot seem to starup fine > >> > > > > After > >> > > > > 13:10:28.097 [async-processor-1] INFO > o.f.core.internal.command. > >> > > > DbMigrate > >> > > > > - Migrating schema `cleopatra178961652` to version 4 - add > unique > >> > > > > constraint charges > >> > > > > ... > >> > > > > > >> > > > > 13:10:57.370 [main] INFO event-recorder-logger -* Waited 30004 > >> > > > > milliseconds*, and event initialize with payload 1 wasn't > observed > >> > > > > > >> > > > > java.lang.IllegalStateException: Initialize didn't complete. > >> > > > > at > >> > > > > io.mifos.anubis.test.v1.TenantApplicationSecurityEnvir > >> > > > onmentTestRule.before(TenantApplicationSecurityEnvir > >> > > > onmentTestRule.java:86) > >> > > > > > >> > > > > > >> > > > > and *How to run test from Terminal* > >> > > > > cd deposit-account-management/component-test > >> > > > > gradle -Dtest.single=TestAccrual test > >> > > > > doesn't seem to find the test since code is in src/main/java > >> > > > > > >> > > > > > >> > > > > Any pointers on event initialize or how command-logger works, or > >> how > >> > > > > embedded Cassandra/Mysql starts up in Test > >> > > > > is much appreciated. > >> > > > > > >> > > > > Many thanks > >> > > > > /sijo > >> > > > > >> > > > >> > > >> >
