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
[email protected]
http://codespeak.net/mailman/listinfo/py-dev