Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[corona-dev] Client-server JUnit tests issues

Hi

 

There are some open issues concerning the design of tests of client-server interaction:

 

1.

Should we assume that all client tests require server availability? If yes, this makes client tests more difficult to run even in simplest cases. Further, JUnit automated tests can only be run if the full build is made. If no, how to distinguish tests that concern client (only), client-server (both) or server (only). Running a test that concern client and server is something like integration test.

 

It is not possible to design JUnit tests in such way that both client and server execute tests simultaneously. They can get out of synch very easily.

Therefore, the currently proposed test configuration looks like this:

Client tests cooperating with server:

a) server is started in the standard mode

b) client is started in "debug" mode, i.e. it executes JUnit tests that communicate with the server

c) client behavior is recorded.

Server tests cooperating with client:

a) client is started in the standard mode

b) server is started in "debug" mode, i.e. it executes JUnit tests that communicate with the client

c) server behavior is recorded.

 

All this can be done automatically from the ant script (using parallel and exec), but there is no debug information on the "other" side of the test.

Is it enough to test server without client interaction. Theoretically, we don't care what clients are connected to the server.

 

2.

How to stop server after finishing client tests?

If we don't want to use "kill" or timeout "kill", the server should close after receiving some kind of notification - either it should receive "event of close" from the client or poll for a special file in the file system (the file can be created by ant after finishing JUnit client tests). Any other ideas? In any case minor modifications to server code are necessary.

The problem equally applies to stopping client after server tests.

 

3.

What about config.ini files - should they be included in the final build for client and server?

It is very uncommon to modify config.ini of the Eclipse platform, but a user may miss the point of copying the files to his Eclipse. The existence of config.ini in the build influences the preparation of tests, although any solution is fine from this point of view.

 

4.

JUnit server tests are required to check if the build process really works.

 

Currently, the build script includes client tests.

All client-server and server issues are commented out and waiting for the final configuration.

 

Pawel

 

The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.

Back to the top