Generic unit test scheduling

Posted by Raphink on Stack Overflow See other posts from Stack Overflow or by Raphink
Published on 2010-05-26T08:59:55Z Indexed on 2010/05/26 9:01 UTC
Read the original article Hit count: 370

Filed under:
|
|
|
|

Hello,

I'm (re)writing a program that does generic unit test scheduling. The current program is a mono-threaded Perl program, but I'm willing to modularize it and parallelize the tests. I'm also considering rewriting it in Python.

Here is what I need to do:

  • I have a list of tests, with the following attributes:
    • uri: a URI to test (could be HTTP/HTTPS/SSH/local) ;
    • depends: an associative array of tests/values that this test depends on ;
    • join: a list of DB joints to be added when selecting items to process in this test ;
    • depends_db: additional conditions to add to the DB request when selecting items to process in this test.
  • The program builds a dependency tree, beginning with the tests that have no dependencies ;
  • for each test:
    • a list of items is selected from the database using the conditions (results of depending tests, joints and depends_db) ;
    • the list of items is sent to the URI (using POST or stdin) ;
    • the result is retrived as a YAML file listing the state and comments for the test for each tested item ;
    • the results are stored in the DB ;
    • the test returns, allowing depending tests to be performed.
  • the program generates reports (CSV, DB, graphviz) of the performed tests.

The primary use of this program currently is to test a fleet of machines against services such as backup, DNS, etc. The tests can then be: - backup: hosted on the backup machine(s), called through HTTP, checks if the machines' backup went well ; - DNS: hosted on the local machine, called via stdin, checks if the machines' fqdn have a valid DNS entry.

Does such a tool/module already exist? What would be the best implementation to achieve this (using Perl or Python)?

© Stack Overflow or respective owner

Related posts about python

Related posts about perl