A fast mode for python tests.

Review Request #405 — Created May 23, 2014 and submitted — Latest diff uploaded

benjyw
pants
pants-reviews
jsirois, wickman
This mode runs all tests in a single chroot and a single python interpreter,
instead of building a new chroot and spawning a new interpreter for every
test target.

Benefits: 1) The pants tests run in 12 seconds instead of 160 seconds.
          2) Test isolation can actually hide problems sometimes.

Drawbacks: Individual chroots are better for verifying that a test
           target's dependencies are self-contained, i.e., that they
           reflect all the actual deps. When running multiple tests
           in a single chroot, test B could provide a dep that test A
           relies on but doesn't declare, thus hiding a missing dep
           problem.

This drawback is minor - it only verifies that the test target's
deps are good, not the deps of the target being tested.

If this works out we can consider making --fast the default in the future. The
equivalent functionality is already all we do for jvm tests: we throw all
our tests at JUnit in one pass.

Note that this change relies on https://rbcommons.com/s/twitter/r/403/
and will ultimately be merged with it before pushing.

Note also that this change gets rid of some crufty features of python_tests, namely
the ability to specify entry_point, soft_dependencies and timeouts in BUILD files.
[On the merged changes]

Ran all pants unittests in regular and fast mode.

Loading...