arquillian / arquillian-cube

Control (docker, kubernetes, openshift) containers in your tests with ease!
http://arquillian.org/arquillian-cube/
120 stars 98 forks source link

Android in Docker #354

Open smiklosovic opened 8 years ago

smiklosovic commented 8 years ago

I just had to write this idea down somewhere ... So the thing is that in integration tests in Droidium I am doing really massive setup how to get all Android SDK up and running, I have there custom special tasks to start and stop Android emulators and so on ... I have just realized that this could be completely thrown away and it would be totally simplified just by spinning up Docker container which would start Android in it ... what an idea :D I do not know if I would be able to show a GUI to user - I think I will not because I will basically run in a headless mode but for a testing purposes it should be good. This is even desirable when you are going to put this into some CI kind of thing ...

And with my extracted Cube runtime tool, I can just start whole Android just by Spacelift oneliner which will fire events which will start Android container in a headless mode.

How cool is that :D

smiklosovic commented 8 years ago

@aslakknutsen

If I extend this idea, I think that it is very interesting option to incorporate Docker into Arquillian runtime directly.

For example, right now you have concept of "containers" which are somewhere physically when you want to run your tests - remote / managed ... what have you.

But it would be interesting if Arquillian treated Docker like the first class citizen and not via extension - you would eventually have some Arquillian Docker container registry where all supported containers of Arquillian and their Dockerfiles would be and you would test against Docker containers hence you do not have to download it from the internet and bootstrap it yourself.

For example as you have now Arquillian Chameleon - you would have Chameleon for Docker containers - which would contain exactly these app containers Arquillian container adapters there are for.

It would be something between managed and remote mode - managed in terms that container could be started, but not like you see where your JBOSS_HOME is or you would start container process because this would not be reachable from our point of view. On the other hand it would not be "remote" because you have a control to start a container in case none is running currently.