You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Sijo Cherian <si...@gmail.com> on 2017/10/02 17:28:29 UTC

fineract-CN running Tests?

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.TenantApplicationSecurityEnvironmentTestRule.before(TenantApplicationSecurityEnvironmentTestRule.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
> > >> > > >
> > >> > >
> > >> >
> > >>
> >

Re: fineract-CN running Tests?

Posted by Avik Ganguly <av...@gmail.com>.
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 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 <si...@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 Markus Geiss <ma...@kuelap.io>.
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 <si...@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 Sijo Cherian <si...@gmail.com>.
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 <si...@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 Markus Geiss <ma...@kuelap.io>.
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 <si...@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 Sijo Cherian <si...@gmail.com>.
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 <si...@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>.
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 <si...@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.TenantApplicationSecurityEnvironmentTestRule.before(TenantApplicationSecurityEnvironmentTestRule.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