Testing Ignite Applications Locally

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

Testing Ignite Applications Locally

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
dmagda dmagda
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

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

dsetrakyan dsetrakyan
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

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 Sergey Kozlov
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

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
yakov yakov
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

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

yakov yakov
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

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
Sergey Kozlov Sergey Kozlov
Reply | Threaded
Open this post in threaded view
|

Re: Testing Ignite Applications Locally

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