+1 what Michael says.

The less friction to running the tests, the more often they will get run, and 
the higher quality we will be. (Friction is some function of manual setup 
effort and the effort to debug/fix false positives when running the tests 
regularly. For example, if the framework is not re-entrant - i.e. doesn’t allow 
me to have two test runs running on different sandboxes on the same machine at 
the same time - that’s a mark against it.)



> On Aug 13, 2018, at 12:57 PM, Michael Mior <[email protected]> wrote:
> 
> Thanks for digging into this Igor! I'm fine with whatever approach others
> want to take. In general, I agree there are problems with the current
> integration test setup and whatever approach allows us to run these tests
> more frequently sounds good to me!
> 
> --
> Michael Mior
> [email protected]
> 
> 
> 
> Le lun. 13 août 2018 à 06:46, Igor Kryvenko <[email protected]> a
> écrit :
> 
>> Hi all, last few months I worked on moving current test environment to
>> docker environment.
>> Thanks, Volodymyr Vysotskiy for the initial patch.
>> 
>> *Motivation*
>> 
>> I noticed that the current test environment has problems with updating
>> versions of databases and often OOM.
>> I investigated previous tickets about moving to Docker environment, and
>> there was only one problem that there was no stable docker for Mac OS and
>> Windows.
>> Now, As far as I know, it works stable for them, and we can use it.
>> 
>> Also, I observed moving calcite integration tests to an in-memory
>> database(MongoDB, ElasticSearch, Cassandra). Why don't I like it?
>> In case of MongoDB, we use Fongo library, which has no full support of all
>> features of MongoDB, so it creates one more dependency for calcite.
>> Before, we need just implement some feature in calcite and use latest
>> MongoDB with this feature. Now we use Fongo, and if we want to support the
>> latest features of MongoDB, Fongo has to implement them also.
>> In the case of ElasticSearch, I think it is the comfortable tradeoff
>> because we use official ElasticSearch API to construct an in-memory
>> database.
>> 
>> Also, there is one more advantage of using Docker, that if we just make
>> changes in some module(e.g. Cassandra) we can just start docker only with
>> Cassandra image, we don't need to setup whole virtual machine with all
>> databases.
>> Also setting up all docker images is faster that Vagrant, even if we launch
>> it the first time.
>> Next launching will be very fast, thanks to  Docker's cache until we change
>> the context of the Docker container.
>> 
>> 
>> I've already created the branch in calcite-test-dataset --
>> https://github.com/igorKryvenko/calcite-test-dataset/tree/docker-new
>> <https://github.com/igorKryvenko/calcite-test-dataset/tree/docker-new>
>> and branch in calcite-project with corresponding changes(a few changes, but
>> I need someone's look at it) ---
>> https://github.com/igorKryvenko/calcite/tree/docker
>> 
>> 
>> I will be appreciated if someone will test my changes on Windows and Mac
>> OS.
>> 
>> *Please, do not hesitate and post your questions and remarks.*
>> 
>> Kind regards
>> Igor Kryvenko
>> 

Reply via email to