| OLD | NEW |
| (Empty) |
| 1 typ (Test Your Program) | |
| 2 ======================= | |
| 3 typ is a simple program for testing command line executables and Python code. | |
| 4 | |
| 5 When testing Python code, it is basically a wrapper around the standard | |
| 6 unittest module, but it provides the following bits of additional | |
| 7 functionality: | |
| 8 | |
| 9 * Parallel test execution. | |
| 10 * Clean output in the style of the Ninja build tool. | |
| 11 * A more flexible mechanism for discovering tests from the | |
| 12 command line and controlling how they are run: | |
| 13 | |
| 14 * Support for importing tests by directory, filename, or module. | |
| 15 * Support for specifying tests to skip, tests to run in parallel, | |
| 16 and tests that need to be run by themselves | |
| 17 | |
| 18 * Support for producing traces of test times compatible with Chrome's | |
| 19 tracing infrastructure (trace_viewer). | |
| 20 * Integrated test coverage reporting (including parallel coverage). | |
| 21 * Integrated support for debugging tests. | |
| 22 * Support for uploading test results automatically to a server | |
| 23 (useful for continuous integration monitoring of test results). | |
| 24 * An abstraction of operating system functionality called the | |
| 25 Host class. This can be used by other python code to write more | |
| 26 portable and easily testable code by wrapping the multiprocessing, | |
| 27 os, subprocess, and time modules. | |
| 28 * Simple libraries for integrating Ninja-style statistics and line | |
| 29 printing into your own code (the Stats and Printer classes). | |
| 30 * Support for processing arbitrary arguments from calling code to | |
| 31 test cases. | |
| 32 * Support for once-per-process setup and teardown hooks. | |
| 33 | |
| 34 (These last two bullet points allow one to write tests that do not require | |
| 35 Python globals). | |
| 36 | |
| 37 History | |
| 38 ------- | |
| 39 | |
| 40 typ originated out of work on the Blink and Chromium projects, as a way to | |
| 41 provide a friendlier interface to the Python unittest modules. | |
| 42 | |
| 43 Work remaining | |
| 44 -------------- | |
| 45 | |
| 46 typ is still a work in progress, but it's getting close to being done. | |
| 47 Things remaining for 1.0, roughly in priority order: | |
| 48 | |
| 49 - Implement a non-python file format for testing command line interfaces | |
| 50 - Write documentation | |
| 51 | |
| 52 Possible future work | |
| 53 -------------------- | |
| 54 | |
| 55 - MainTestCase.check() improvements: | |
| 56 | |
| 57 - check all arguments and show all errors at once? | |
| 58 - make multi-line regexp matches easier to follow? | |
| 59 | |
| 60 - --debugger improvements: | |
| 61 | |
| 62 - make it skip the initial breakpoint? | |
| 63 | |
| 64 - Support testing javascript, java, c++/gtest-style binaries? | |
| 65 - Support for test sharding in addition to parallel execution (so that | |
| 66 run-webkit-tests can re-use as much of the code as possible)? | |
| 67 - Support for non-unittest runtest invocation (for run-webkit-tests, | |
| 68 other harnesses?) | |
| OLD | NEW |