How do you test CFML against multiple versions of ColdFusion?
'How do I run ColdFusion 8 and 7 side by side on IIS?' or 'How can I run Railo and Adobe ColdFusion side by side, so I can share the same code base?', is a question I see quite regularly on CF lists.
I figured I would write up a blog post about how I go about solving this problem, since I do this a lot with my Transfer development.
The quick answer is - I don't. Trying to set up two different Application servers (CF7 vs CF8) on the same Web Server (IIS or Apache), is not something I desire to tackle, and seems way more convoluted than I care to trouble myself with.
The problem is usually broken down into:
- How do I test the same code on different versions of CF?
- How do I do so without having to move/sync files between machines?
- How do I set it up so it is easy to switch between versions of testing?
I solve each of these problems with Virtual Machines , and Shared Folders.
I have actually bought VMware's Workstation product, and I use it every day, but there are several free products out there that will do virtualisation for free.
First thing first, where does my actual CFML code sit? This sits on my primary machine, commonly referred to as the host machine, in VM speak. This is because the host has guest machines, namely of the Virtual Machine variety.
This means my CFML code is always available if I want to get my hands on it, and I can open it in Eclipse on my host machine as well, so I do all my editing and development with tools on my host machine.
I also do this because I can then share this code between virtual machines, using a mechanism called Shared folders.
So, now that I have my ColdFusion code, I create myself a new virtual machine. In my case, I use Ubuntu Server, because its lightweight, and I can get one up and running in about half an hour, but you could use XP, or anything that runs CF.
I then configure my virtual machine to share my host folder which contains my CFML, which is a setting I am able to configure within VMWare. This then becomes accessible at /mnt/hgfs/wwwroot in my Ubuntu server on my VM.
From here, I can now install ColdFusion 8 on this VM, and point it to /mnt/hgfs/wwwroot folder to serve cfml from.
I can then create extra virtual machines, one for each version of ColdFusion that I need.
When I need to test against a version of ColdFusion, all I need to do is start up the virtual machine in question, and browse to it. To switch versions of ColdFusion, I simply power the current one down, and start up another one.
I find this a much easier way to test the same code base between different versions of ColdFusion than trying to run them side by side.





