I just got a bug in the Oslo Messaging project on requirements: a unit test ensures that requirements are installed, and this test fails. tox currently starts by building a source distribution using "python setup.py sdist". The problem is that in Oslo Messaging, requirements are different on Python 2 and Python 3: oslo.messaging.egg-info/requires.txt is different if you run "python2 setup.py sdist" or "python3 setup.py sdist".
I wrote a patch to always rebuild the source distribution with the Python of the virtual environment in subcommand_test(). I kept the first call to sdist() which may be redundant in some cases, but I don't know tox enough to decide when the first call can be skipped (I don't want to introduce a regression).