You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Avik Ganguly <av...@gmail.com> on 2018/10/06 18:44:02 UTC
Re: fineract-CN running Tests?
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 <my...@apache.org> 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 <ma...@kuelap.io>
> 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 <si...@gmail.com>
> 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 <ma...@kuelap.io>
> >> 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 <si...@gmail.com>
> 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 <my...@apache.org>
> 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 <sijo.cher@gmail.com
> >
> >> > > 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
> >> > > >
> >> > >
> >> >
> >>
>
Re: fineract-CN running Tests?
Posted by Myrle Krantz <my...@apache.org>.
Hey Avik,
Those tests were broken at the time I did the code importing, and I've
never fixed them to complete code importation. But they had so much
overlap with demo-server that I haven't felt it to be very important.
You can still find that code though:
https://github.com/mifosio-04-04-2018
I've captured a "still" of what was imported there.
Best Regards,
Myrle
On Sat, Oct 6, 2018 at 8:44 PM Avik Ganguly <av...@gmail.com> wrote:
>
> 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 <my...@apache.org> 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 <ma...@kuelap.io>
> > 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 <si...@gmail.com>
> > 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 <ma...@kuelap.io>
> > >> 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 <si...@gmail.com>
> > 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 <my...@apache.org>
> > 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 <sijo.cher@gmail.com
> > >
> > >> > > 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
> > >> > > >
> > >> > >
> > >> >
> > >>
> >