Developers use package managers for application consistency. Now why dont we apply that same logic to the testing aspect as well?
The best reason on the why to this is the same reasoning developers uses packages in their code. Provides a baseline to work off of.
Arguably the most well known package manger is apt-get since it is used extensively in Debian Linux based systems. If that sentence seems weird, welcome to the world of computers and follow along for more learning chances.
This one is known quite well for developers on the Mac ecosystem. And according to StackOverflow's 2016 Developer Survey, most of people reading this blog work on a Mac, so this should not be news to you.
Homebrew for the win!
Sorry had too. This package manager has been around for a long time just for developers to easily install common tools. With the added benefit of using the Caskroom, which allows for install applications, developers can have a single install script and make any new machine setup completely for them to use.
Underlying Homebrew is Ruby which gives Homebrew all of the power it needs to do just about everything for you. It does not do your work for you though.
Wait, what?!?! Yes Windows is on this list! Not many people have heard about it but Chocolately is a package manager for Windows and it is like Homebrew and Caskroom together. Languages, tools and applications live together side-by-side in the choco gallery.
With the recent support added for bash scripts in Windows there might become a new space for package managers to exist with support for both *nix based and Windows machines.
The other possible solution is that with the recent release of Powershell for *nix based systems a whole new package mange tool may come out of it.
Now this is where we get to have some fun. If you want to. Now there are a few different ways to do this and I will go into detail with them in future posts but here are the technologies that we could use to have an atomic testing setup.
That means that just before any tests are executed all of the machines that will be needed for testing will be brought online and configured from scratch so there will be no extraneous processes or junk files laying around.