Allows us to run subtests while still seeing which parameter
combination caused the tests to fail. The decorator can be used to
create subtests inside a test or to parameterize an entire test method.
We cannot use something like unittest2.TestCase.subTest because our test
runner does not support that.