Well the motivation is the idea that a python test runner would have functionality similar to nose
the difference being it being able to run C Unit tests. I am yet to find anything similar.
Here are some of the requirements of test runner.
- The test runner is responsible for running a series of tests and gathering results for all of them.
- The testrunner should support multiple test methods ( including self-describing, reftest and script )
- Must be able to load tests automatically based on manifest files.
- The test runner must be able to order test cases smartly
- The test runner must allow for tests to be run in random order and repetitively
- The test runner must allow for complete and partial execution of tests
- It must be possible to create test runners that work on various platforms
- The test runner must provide some way to output collected results
- The test runner must allow for automatic and manual gathering of context information
- The test runner must include context information in collected results
- The test runner must support positive and negative testing
- The test runner must support testing of time based information
- The test runner must allow a test to report its result automatically
- The test runner must allow humans to report on manual test outcome
- The test runner must allow reftests to be run by humans
- The test runner should allow for humans to comment on a test outcome
- The test runner must allow tests to be created on smaller tests
- The test runner must be usable by external entities and individuals
Rather than doing all this yourself (a tremedous piece of work), how about using
py.test? It’s a powerful test runner, among other things. It satisfies most of your requirements (well, those that are clear – some don’t make a lot of sense to me) out of the box, and is customizable enough to add anything you need beyond that.The killer feature, however, is that they actively developed and documented a way to do precisely this: Working with non-python tests. The example over there is minimal, but the API seems powerful enough. In fact, you wouldn’t be the first to use this capability (giving you another source of information) – someone already built a JavaScript testing framework with it.