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 |