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

Reply via email to