Jump to: navigation, search

Difference between revisions of "NovaTestingHudson"

 
Line 8: Line 8:
 
Currently, Hudson runs a simple job that executes Nova's unit tests on a single machine, with most drivers and adapters "faked".  This is fine for coarse-grained validation of new code, but is not considered to be exhaustive testing of the code base, nor does it test critical pieces of the virtualisation and messaging layers.
 
Currently, Hudson runs a simple job that executes Nova's unit tests on a single machine, with most drivers and adapters "faked".  This is fine for coarse-grained validation of new code, but is not considered to be exhaustive testing of the code base, nor does it test critical pieces of the virtualisation and messaging layers.
  
We need to create a number of clusters that should have both the unit tests and a series of smoke tests run against them for each commit to Nova's trunk.  These test clusters should be set up with Nova's most common supported platforms
+
We need to create a number of clusters that should have both the unit tests and a series of smoke tests run against them for each commit to Nova's trunk.  These test clusters should be set up with Nova's most common supported platforms.
 +
 
 +
== Proposed Platforms for Testing ==
 +
 
 +
Here are the proposed specifications for the test clusters to build:
 +
 
 +
=== Ubuntu 10.04 LTS / Qemu / MySQL datastore / RabbitMQ ===
 +
 
 +
=== Ubuntu 10.04 LTS / Xen / MySQL datastore / RabbitMQ ===
 +
 
 +
=== Microsoft Windows Server (version?) / Hyper-V / MySQL datastore / RabbitMQ ===
  
 
= Allowing Developers to Test Arbitrary Branches in a Test Environment =
 
= Allowing Developers to Test Arbitrary Branches in a Test Environment =
  
 
Infrastructure should be built to allow developers to have Hudson run tests in the test clusters against an arbitrary branch.  Monty Taylor solved this problem in Drizzle using the innovative [http://hudson.drizzle.org/view/Drizzle-param Parameterized Build Farm].  It would be great to do the same for Nova.
 
Infrastructure should be built to allow developers to have Hudson run tests in the test clusters against an arbitrary branch.  Monty Taylor solved this problem in Drizzle using the innovative [http://hudson.drizzle.org/view/Drizzle-param Parameterized Build Farm].  It would be great to do the same for Nova.

Revision as of 16:23, 25 October 2010

This page describes the efforts to provide developers with better testing infrastructure for Nova using Hudson and additional platforms.

<<TableOfContents()>>

Real Test Environments

Currently, Hudson runs a simple job that executes Nova's unit tests on a single machine, with most drivers and adapters "faked". This is fine for coarse-grained validation of new code, but is not considered to be exhaustive testing of the code base, nor does it test critical pieces of the virtualisation and messaging layers.

We need to create a number of clusters that should have both the unit tests and a series of smoke tests run against them for each commit to Nova's trunk. These test clusters should be set up with Nova's most common supported platforms.

Proposed Platforms for Testing

Here are the proposed specifications for the test clusters to build:

Ubuntu 10.04 LTS / Qemu / MySQL datastore / RabbitMQ

Ubuntu 10.04 LTS / Xen / MySQL datastore / RabbitMQ

Microsoft Windows Server (version?) / Hyper-V / MySQL datastore / RabbitMQ

Allowing Developers to Test Arbitrary Branches in a Test Environment

Infrastructure should be built to allow developers to have Hudson run tests in the test clusters against an arbitrary branch. Monty Taylor solved this problem in Drizzle using the innovative Parameterized Build Farm. It would be great to do the same for Nova.