learningOrchestra / mlToolKits

learningOrchestra is a distributed Machine Learning integration tool that facilitates and streamlines iterative processes in a Data Science project.
https://learningorchestra.github.io
GNU General Public License v3.0
75 stars 23 forks source link

Implement tests in microservices #90

Open learningOrchestraAccount opened 4 years ago

learningOrchestraAccount commented 4 years ago

Is your feature request related to a problem? Please describe.

Currently the microservices are hard to make tests, when a PR is created, we need deploy learningOrchestra in a cloud cluster to verify the changes, it is painful!

Describe the solution you'd like

There are a way to make tests in each microservice to ensure the correct working? I don't know a exactly solution.

Describe alternatives you've considered

Maybe we can use mocked files to test each microservice.

Additional context

The microservices are highly coupled, each microservice have rely to other microservices.

riibeirogabriel commented 4 years ago

@sudiptog81 do you have knowledge to help us with this issue?

sudiptog81 commented 4 years ago

@riibeirogabriel I have written tests for REST APIs, I would need to deploy this project to get a feel, working on this. Microservices would need to be distributed across repositories and added as submodules to this repository at some point, when the tight-coupling has been taken care of.

There could be unit tests for each microservice that can be run as separate CI jobs for individual branches and integration test jobs can be run for the master.

riibeirogabriel commented 4 years ago

@sudiptog81 it sounds like a big challengue! If we put each microservice in a repo, how we will make the deploy of the learningOrchestra? The user will clone each repo in a subfolder like the microservices? It will be painful.

sudiptog81 commented 4 years ago

They are separate ideas. Regarding cloning, the --recursive flag shall take care of that, but that idea is for the future. Right now, we can work on individual unit tests and then run all the unit tests using a test script. I still need to work on how to deploy the cluster from a CI environment after tests have run.

riibeirogabriel commented 4 years ago

You will be very help to this project, i don't know a way to use CI tests with a distributed software, without make the deploy, maybe using mock files.

riibeirogabriel commented 4 years ago

Do you have a cluster environment (3 machines) to run this software and know how it works?

riibeirogabriel commented 4 years ago

Maybe can run with 2 machines.

riibeirogabriel commented 4 years ago

@all-contributors please add @hiperbolt for code and ideas

allcontributors[bot] commented 4 years ago

@riibeirogabriel

I've put up a pull request to add @hiperbolt! :tada:

hiperbolt commented 4 years ago

@sudiptog81 I suggest maybe an azure pipeline with pre-made mock files. I'm interested on how this issue gets fixed.

riibeirogabriel commented 4 years ago

@sudiptog81 Would you like make this issue together with @hiperbolt ?

riibeirogabriel commented 4 years ago

@sudiptog81 Do you yet have interest in this issue? Case negative i can pass to other person.

sudiptog81 commented 4 years ago

Please unassign me from this particular issue and pass on, kind of busy for a few days.

riibeirogabriel commented 4 years ago

@sudiptog81 no problems, if you have future interest, please send me a message.

riibeirogabriel commented 4 years ago

@hiperbolt do you can this alone?

hiperbolt commented 4 years ago

@riibeirogabriel Yeah I think I can work on this on my own.

riibeirogabriel commented 4 years ago

I can help you, but i have little knowledge on microservices test, i think this require some studies about.

hiperbolt commented 4 years ago

I'll take my time researching it. I'll talk to you about ideas on how to approach this.

hiperbolt commented 4 years ago

I'm going with unit tests with mockfiles for each microservice, using github/azure pipelines for CI/CD. I'm going to start work on the mock files and unit tests and once those are done I'll update here.

hiperbolt commented 4 years ago

Sorry I haven't been active on this issue. I'm going to start work on it today.

riibeirogabriel commented 4 years ago

@hiperbolt no problem, take your time.