I know py.test has distributed testing already but I have been using
Testswarm (a distributed javascript testing framework) for a while now
and thought the idea would fit nicely with py.test. This is just me
kind of brain storming the idea, so feel free to ignore me if you have
no interest in this idea.

Ok basic premise is:
    Central server for anyone to schedule test runs on
    Clients connect to the central server and run tests as they come
in for any and all apps they meet the requirements for

Goals:
    Eliminate the need for everyone to establish their own distributed
testing network by establishing a remote distributed network where
clients connect and will run tests from any app that is registered on
the server.


Brainstorm of requirements:
    Server - Needs a way for applications / libraries to register
    Server - Apps need a way to set dependencies, and a way to specify
version for that dependency
    Server - Apps need a way to set the environments to test on (os
version and python version)
    Server - Apps need a way to schedule test runs and upload the code
to test against
    Server - Need a UI to display a test metric like
http://testswarm.com/user/jquery/
    Server - Needs a method of tracking available clients, and their
environments
    Server - Needs a way to send tests to every available client that
meets the environment specs for each app.
        Needs to keep track of the test run id for results
    Server - Needs to accept results back
        Needs to identify the run and clients environment id to make
sure we can mark an environment finished for the run
    Server - Needs a fault catcher to reschedule a test run /
environment if a remote client disconnects before it finished
    Server - Needs a way of removing code once all tests have been
executed for a particular run, or after X days
    Server - Needs to ensure remote execution of apps is not possible
for security
    Client - Needs a way to connect to the central server and keep it
notified that it is still alive
    Client - Needs a way to receive Tests
    Client - Needs a way to report results back


Brainstorm implementation details:
    modified? py.execnet for the server test dispatcher
    modified? py.execnet for the client test receiver
    Client should be command line only so it can be run as a service
    Web app for managing Apps and result display
        REsT API for scheduling test runs and uploading the required code?
        "py.test schedule" command?
_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to