Skip to content
Snippets Groups Projects
  • Masood Malekghassemi's avatar
    3b5b2068
    Make running individual Python tests less painful · 3b5b2068
    Masood Malekghassemi authored
    Before this change, running Python tests individually required
    building a tox environment via the run_tests script and then specifying
    long environment variables to filter out just the test we wanted to run
    (and then we wouldn't be able to get the output on interrupt, nor would
    we have an easy way of determining the PID of the process for debugger
    attachment). Now invoking the build_python.sh script creates a workable
    python virtual environment that includes all necessary libraries and
    tests (s.t. running a single test is now possible by just knowing the
    module name). This does not change existing supported means of running
    tests (e.g. through run_tests.py).
    
    An additional way of running individual tests has been introduced.
    Following invocation of `./tools/run_tests/build_python.sh` (or
    run_tests.py), one may invoke
    
      ./$VENV/bin/python -m $TEST_MODULE_NAME
    
    and acquire a single running process that *is* the test process (rather
    than a parent of the process). $VENV is the virtual environment name
    specified to `build_python.sh` (defaults to `py27`) and
    $TEST_MODULE_NAME is what it says on the tin.
    3b5b2068
    History
    Make running individual Python tests less painful
    Masood Malekghassemi authored
    Before this change, running Python tests individually required
    building a tox environment via the run_tests script and then specifying
    long environment variables to filter out just the test we wanted to run
    (and then we wouldn't be able to get the output on interrupt, nor would
    we have an easy way of determining the PID of the process for debugger
    attachment). Now invoking the build_python.sh script creates a workable
    python virtual environment that includes all necessary libraries and
    tests (s.t. running a single test is now possible by just knowing the
    module name). This does not change existing supported means of running
    tests (e.g. through run_tests.py).
    
    An additional way of running individual tests has been introduced.
    Following invocation of `./tools/run_tests/build_python.sh` (or
    run_tests.py), one may invoke
    
      ./$VENV/bin/python -m $TEST_MODULE_NAME
    
    and acquire a single running process that *is* the test process (rather
    than a parent of the process). $VENV is the virtual environment name
    specified to `build_python.sh` (defaults to `py27`) and
    $TEST_MODULE_NAME is what it says on the tin.