QA/Automation/Projects/Mozmill Automation/Environment/Requirements
Setting up the environment for Mozmill is not always an easy task, especially on Windows with all the dependencies for external tools, e.g. Python. To nearly eliminate the entry barrier for new members, but also to provide a package for our own automation tasks, a pre-configured environment will be made available. It contains all the tools, which are necessary to execute the Mozmill tests for Firefox.
General
There are requirements, which apply to each of our supported platforms. The following list shows all of them in a prioritized order:
- Ship with a fixed version of included tools, which don't have to be compiled or installed on the target system
- Support for all platforms as given by the Firefox system requirements
- No dependencies on system-wide applications as toolboxes or frameworks (No usage of virtualenv)
- No modifications of the target system by the installation of tools or modifications of settings
- Ship as a zip archive with an as small as possible size
- Scripts to auto-generate test environments for all platforms
Linux
Due to the fact that Ubuntu is our default Linux distribution for testing, we will primarily focus on this specific OS for now. Saying that, it does not mean that we do not want to support other distributions in the future.
Mac
Compared to Linux, Mac OS X does not have developer tools installed per default. Given that xcode even has to be bought via the Apple Store now, we can't make it a requirement. The environment has to work on a clean OS X system with the default Python installation.
Windows
The Windows platform is the most important but also most difficult one. It doesn't have any developer tools or Python interpreter installed per default. That means the environment would also have to bundle Python to be usable at all.
A nice optional solution which we sadly can't use is the py2exe extension, which would allow us to kill any dependency on Python bundled with our environment. Given the amount of dependencies, a final larger size on disk, and additional work to make it work, we decided to drop this idea and instead deliver a full python version.
Applications
The minimal set of tools, which are necessary for the environment to allow the execution of our existent Mozmill tests is:
- mercurial (1.9.3)
- simplejson (2.2.1)
- mozmill (latest approved + dependencies)
Both mercurial and simplejson contain optional C extensions for speed-up, which can't be used and have to be disabled.
Additionally the following tools are getting installed on Windows to support a better user experience:
Environment Generation
The preparation of the Mozmill environment for all platforms has to happen on a build machine with all necessary build tools installed. A script has to fetch all required applications and build the environment automatically.
Build tools required:
- Python (2.5 and higher)
- cURL (Linux, Mac)
- Python Headers (Ubuntu: sudo apt-get install python-dev)