Testing Ignite Applications Locally

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Testing Ignite Applications Locally

yzhdanov
Guys,

I want to discuss the subject again. It is pretty vivid that having wide
set of local unit and simple integration tests most likely help to avoid
many failures and bugs when going to server environment.

I participated in many POC and I can say for sure - if developers are not
implementing local tests then their application is broken. This is true for
the entire industry. Why does anyone think that Ignite and distributed
systems in general are exceptions here? Complexity added by distributed
nature probably needs local tests even more.

So, what Ignite already offers here and what can be done further?

1. Ignite offers ability to emulate cluster and even many cluster in a
single VM. Let's create a page on readme.io explaining how to start
topologies in a single VM and provide couple examples of unit tests for
cache operations and, for example, queries. Denis Magda, can you help?
(Yes, we don't have the page explaining how to test Ignite locally!)

2. Ignite has a large and rich set of tests in its code base. We can
provide the link on the page at p1.

3. Let's create maven archetype for Ignite. So, executing the command [1]
will bring me inited project with valid poms, sample batch scripts, sample
Ignite configs, sample logger configuration and test sources folder
containing several JUnits (!!).

[1]  mvn archetype:generate \
          -DinteractiveMode=false \
          -DarchetypeGroupId=org.apache.ignite \
          -DarchetypeArtifactId=ignite-app-archetype \
          -DgroupId=org.sample \
          -DartifactId=sampleapp \
          -Dversion=1.0

Please share your thoughts and we can file tickets to start moving.

--Yakov
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

dmagda
Yasha,

Sure, I’ll help from the documentation point but will need raw material from you, guys - test snippets, essential configuration parameters, etc.


Denis

> On Aug 25, 2017, at 8:30 AM, Yakov Zhdanov <[hidden email]> wrote:
>
> Guys,
>
> I want to discuss the subject again. It is pretty vivid that having wide set of local unit and simple integration tests most likely help to avoid many failures and bugs when going to server environment.
>
> I participated in many POC and I can say for sure - if developers are not implementing local tests then their application is broken. This is true for the entire industry. Why does anyone think that Ignite and distributed systems in general are exceptions here? Complexity added by distributed nature probably needs local tests even more.
>
> So, what Ignite already offers here and what can be done further?
>
> 1. Ignite offers ability to emulate cluster and even many cluster in a single VM. Let's create a page on readme.io <http://readme.io/> explaining how to start topologies in a single VM and provide couple examples of unit tests for cache operations and, for example, queries. Denis Magda, can you help? (Yes, we don't have the page explaining how to test Ignite locally!)
>
> 2. Ignite has a large and rich set of tests in its code base. We can provide the link on the page at p1.
>
> 3. Let's create maven archetype for Ignite. So, executing the command [1] will bring me inited project with valid poms, sample batch scripts, sample Ignite configs, sample logger configuration and test sources folder containing several JUnits (!!).
>
> [1]  mvn archetype:generate \
>           -DinteractiveMode=false \
>           -DarchetypeGroupId=org.apache.ignite \
>           -DarchetypeArtifactId=ignite-app-archetype \
>           -DgroupId=org.sample \
>           -DartifactId=sampleapp \
>           -Dversion=1.0
>
> Please share your thoughts and we can file tickets to start moving.
>
> --Yakov

Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

dsetrakyan
Love the idea. Let's add Testing Ignite Apps page on Readme. Denis, I don't
think we need many snippets, just a few.

As far as Maven archetype, Yakov, is the only purpose of it to load a
project, so users can add tests to it?

D.

On Fri, Aug 25, 2017 at 8:51 AM, Denis Magda <[hidden email]> wrote:

> Yasha,
>
> Sure, I’ll help from the documentation point but will need raw material
> from you, guys - test snippets, essential configuration parameters, etc.
>
> —
> Denis
>
> On Aug 25, 2017, at 8:30 AM, Yakov Zhdanov <[hidden email]> wrote:
>
> Guys,
>
> I want to discuss the subject again. It is pretty vivid that having wide
> set of local unit and simple integration tests most likely help to avoid
> many failures and bugs when going to server environment.
>
> I participated in many POC and I can say for sure - if developers are not
> implementing local tests then their application is broken. This is true for
> the entire industry. Why does anyone think that Ignite and distributed
> systems in general are exceptions here? Complexity added by distributed
> nature probably needs local tests even more.
>
> So, what Ignite already offers here and what can be done further?
>
> 1. Ignite offers ability to emulate cluster and even many cluster in a
> single VM. Let's create a page on readme.io explaining how to start
> topologies in a single VM and provide couple examples of unit tests for
> cache operations and, for example, queries. Denis Magda, can you help?
> (Yes, we don't have the page explaining how to test Ignite locally!)
>
> 2. Ignite has a large and rich set of tests in its code base. We can
> provide the link on the page at p1.
>
> 3. Let's create maven archetype for Ignite. So, executing the command [1]
> will bring me inited project with valid poms, sample batch scripts, sample
> Ignite configs, sample logger configuration and test sources folder
> containing several JUnits (!!).
>
> [1]  mvn archetype:generate \
>           -DinteractiveMode=false \
>           -DarchetypeGroupId=org.apache.ignite \
>           -DarchetypeArtifactId=ignite-app-archetype \
>           -DgroupId=org.sample \
>           -DartifactId=sampleapp \
>           -Dversion=1.0
>
> Please share your thoughts and we can file tickets to start moving.
>
> --Yakov
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

Sergey Kozlov
The idea is great!

Also I would suggest an ability to run new (modified) tests 100 times in
loop on the CI server to make sure that they don't cause no sporadic
failures (we can include that as part of the requirements before review)

On Sat, Aug 26, 2017 at 6:16 PM, Dmitriy Setrakyan <[hidden email]>
wrote:

> Love the idea. Let's add Testing Ignite Apps page on Readme. Denis, I
> don't think we need many snippets, just a few.
>
> As far as Maven archetype, Yakov, is the only purpose of it to load a
> project, so users can add tests to it?
>
> D.
>
> On Fri, Aug 25, 2017 at 8:51 AM, Denis Magda <[hidden email]> wrote:
>
>> Yasha,
>>
>> Sure, I’ll help from the documentation point but will need raw material
>> from you, guys - test snippets, essential configuration parameters, etc.
>>
>> —
>> Denis
>>
>> On Aug 25, 2017, at 8:30 AM, Yakov Zhdanov <[hidden email]> wrote:
>>
>> Guys,
>>
>> I want to discuss the subject again. It is pretty vivid that having wide
>> set of local unit and simple integration tests most likely help to avoid
>> many failures and bugs when going to server environment.
>>
>> I participated in many POC and I can say for sure - if developers are not
>> implementing local tests then their application is broken. This is true for
>> the entire industry. Why does anyone think that Ignite and distributed
>> systems in general are exceptions here? Complexity added by distributed
>> nature probably needs local tests even more.
>>
>> So, what Ignite already offers here and what can be done further?
>>
>> 1. Ignite offers ability to emulate cluster and even many cluster in a
>> single VM. Let's create a page on readme.io explaining how to start
>> topologies in a single VM and provide couple examples of unit tests for
>> cache operations and, for example, queries. Denis Magda, can you help?
>> (Yes, we don't have the page explaining how to test Ignite locally!)
>>
>> 2. Ignite has a large and rich set of tests in its code base. We can
>> provide the link on the page at p1.
>>
>> 3. Let's create maven archetype for Ignite. So, executing the command [1]
>> will bring me inited project with valid poms, sample batch scripts, sample
>> Ignite configs, sample logger configuration and test sources folder
>> containing several JUnits (!!).
>>
>> [1]  mvn archetype:generate \
>>           -DinteractiveMode=false \
>>           -DarchetypeGroupId=org.apache.ignite \
>>           -DarchetypeArtifactId=ignite-app-archetype \
>>           -DgroupId=org.sample \
>>           -DartifactId=sampleapp \
>>           -Dversion=1.0
>>
>> Please share your thoughts and we can file tickets to start moving.
>>
>> --Yakov
>>
>>
>>
>


--
Sergey Kozlov
GridGain Systems
www.gridgain.com
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

yzhdanov
Sergey, can you please elaborate?

--Yakov

2017-08-26 23:51 GMT+03:00 Sergey Kozlov <[hidden email]>:

> The idea is great!
>
> Also I would suggest an ability to run new (modified) tests 100 times in
> loop on the CI server to make sure that they don't cause no sporadic
> failures (we can include that as part of the requirements before review)
>
> --
> Sergey Kozlov
> GridGain Systems
> www.gridgain.com
>
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

yzhdanov
In reply to this post by dsetrakyan
>As far as Maven archetype, Yakov, is the only purpose of it to load a
project, so users can add tests to it?

Yes, but not just add. We will also be providing test examples, data
loading application sample, shell scripts, etc. This can be pretty handy
thing to create project with all dependencies initialized and useful stuff.

--Yakov
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

Sergey Kozlov
Yakov, ok. I'll do that

On Mon, Aug 28, 2017 at 6:19 PM, Yakov Zhdanov <[hidden email]> wrote:

> >As far as Maven archetype, Yakov, is the only purpose of it to load a
> project, so users can add tests to it?
>
> Yes, but not just add. We will also be providing test examples, data
> loading application sample, shell scripts, etc. This can be pretty handy
> thing to create project with all dependencies initialized and useful stuff.
>
> --Yakov
>



--
Sergey Kozlov
GridGain Systems
www.gridgain.com