GLOB sdist-make: /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/setup.py py36 create: /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36 py36 inst: /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/.tmp/package/1/pytest-flakefinder-0.1.1.zip py36 installed: attrs==19.3.0,importlib-metadata==1.1.0,more-itertools==8.0.0,packaging==19.2,pluggy==0.13.1,py==1.8.0,pyparsing==2.4.5,pytest==5.3.1,pytest-flakefinder==0.1.1,six==1.13.0,wcwidth==0.1.7,zipp==0.6.0 py36 run-test-pre: PYTHONHASHSEED='1707164869' py36 run-test: commands[0] | py.test ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 cachedir: .tox/py36/.pytest_cache rootdir: /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1 plugins: flakefinder-0.1.1 collected 16 items tests/test_flakefinder.py ....F.F....FFFF. [100%] =================================== FAILURES =================================== _______________________ test_unittest_repeats[flags0-50] _______________________ testdir = flags = ['--flake-finder', '-v'], runs = 50 @pytest.mark.parametrize("flags, runs", [ ([], pytest_flakefinder.DEFAULT_FLAKE_RUNS), (["--flake-runs=1"], 1), (["--flake-runs=25"], 25), ]) def test_unittest_repeats(testdir, flags, runs): """Test that flake-finder works with unittest.TestCase.""" # The test file. testdir.makepyfile(""" import unittest class TestAwesome(unittest.TestCase): def test(self): assert True """) # Run pytest. flags += ['--flake-finder', '-v'] result = testdir.runpytest(*flags) # Check output. result.stdout.fnmatch_lines( # NB: unitest TestCases don't increment the collected items. # Wildcard at end because different Python+pytest combos pluralize 'item' ['collecting ... collected 1 item*'] + > ['*::TestAwesome::test PASSED*' for _ in range(runs)] ) E Failed: nomatch: 'collecting ... collected 1 item*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python' E and: 'cachedir: .pytest_cache' E and: 'rootdir: /tmp/pytest-of-travis/pytest-33/test_unittest_repeats0' E and: 'plugins: flakefinder-0.1.1' E fnmatch: 'collecting ... collected 1 item*' E with: 'collecting ... collected 1 item' E nomatch: '*::TestAwesome::test PASSED*' E and: '' E fnmatch: '*::TestAwesome::test PASSED*' E with: 'test_unittest_repeats.py::TestAwesome::test PASSED [100%]' E nomatch: '*::TestAwesome::test PASSED*' E and: '' E and: '============================== 1 passed in 0.22s ===============================' E remains unmatched: '*::TestAwesome::test PASSED*' /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/tests/test_flakefinder.py:71: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-travis/pytest-33/test_unittest_repeats0 plugins: flakefinder-0.1.1 collecting ... collected 1 item test_unittest_repeats.py::TestAwesome::test PASSED [100%] ============================== 1 passed in 0.22s =============================== _______________________ test_unittest_repeats[flags2-25] _______________________ testdir = flags = ['--flake-runs=25', '--flake-finder', '-v'], runs = 25 @pytest.mark.parametrize("flags, runs", [ ([], pytest_flakefinder.DEFAULT_FLAKE_RUNS), (["--flake-runs=1"], 1), (["--flake-runs=25"], 25), ]) def test_unittest_repeats(testdir, flags, runs): """Test that flake-finder works with unittest.TestCase.""" # The test file. testdir.makepyfile(""" import unittest class TestAwesome(unittest.TestCase): def test(self): assert True """) # Run pytest. flags += ['--flake-finder', '-v'] result = testdir.runpytest(*flags) # Check output. result.stdout.fnmatch_lines( # NB: unitest TestCases don't increment the collected items. # Wildcard at end because different Python+pytest combos pluralize 'item' ['collecting ... collected 1 item*'] + > ['*::TestAwesome::test PASSED*' for _ in range(runs)] ) E Failed: nomatch: 'collecting ... collected 1 item*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python' E and: 'cachedir: .pytest_cache' E and: 'rootdir: /tmp/pytest-of-travis/pytest-33/test_unittest_repeats2' E and: 'plugins: flakefinder-0.1.1' E fnmatch: 'collecting ... collected 1 item*' E with: 'collecting ... collected 1 item' E nomatch: '*::TestAwesome::test PASSED*' E and: '' E fnmatch: '*::TestAwesome::test PASSED*' E with: 'test_unittest_repeats.py::TestAwesome::test PASSED [100%]' E nomatch: '*::TestAwesome::test PASSED*' E and: '' E and: '============================== 1 passed in 0.18s ===============================' E remains unmatched: '*::TestAwesome::test PASSED*' /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/tests/test_flakefinder.py:71: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-travis/pytest-33/test_unittest_repeats2 plugins: flakefinder-0.1.1 collecting ... collected 1 item test_unittest_repeats.py::TestAwesome::test PASSED [100%] ============================== 1 passed in 0.18s =============================== __________________________ test_flake_max_minutes[1] ___________________________ testdir = minutes = 1 @pytest.mark.parametrize("minutes", (1, 5, 10)) def test_flake_max_minutes(testdir, minutes): """Test --flake-max-minutes= option.""" # On the 10th iteration we monkey-patch time.time to advance time past the # limit. testdir.makepyfile(""" import time class TestTimePatch(object): def setup_class(cls): cls.count = 1 cls.orig_time = time.time def teardown_class(cls): # Put back the old time when the test is over. That way we # don't report the tests as taking 900 seconds. time.time = cls.orig_time def test(self): if TestTimePatch.count == 10: cur_time = time.time() # Move time 1 second past the limit at least. time.time = lambda: cur_time + %d * 60 + 1 TestTimePatch.count += 1 """ % minutes) # Run pytest. result = testdir.runpytest('--flake-finder', '-v', '--flake-max-minutes=%d' % minutes, '-s') passing_runs = 10 runs = pytest_flakefinder.DEFAULT_FLAKE_RUNS # Check output. result.stdout.fnmatch_lines( # fnmatch doesn't like `[` characters so I use `?`. ['collecting ... collected %d items' % runs] + ['*::test?%d? PASSED*' % i for i in range(min(runs, passing_runs))] + ['*::test?%d? SKIPPED*' % i for i in range(passing_runs, runs)] + # Test for the test, make sure the time isn't modified when coming out. > ['* 10 passed, 40 skipped in ?.?? seconds *'] ) E Failed: nomatch: 'collecting ... collected 50 items' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python' E and: 'cachedir: .pytest_cache' E and: 'rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_max_minutes0' E and: 'plugins: flakefinder-0.1.1' E exact match: 'collecting ... collected 50 items' E nomatch: '*::test?0? PASSED*' E and: '' E fnmatch: '*::test?0? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[0] PASSED' E fnmatch: '*::test?1? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[1] PASSED' E fnmatch: '*::test?2? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[2] PASSED' E fnmatch: '*::test?3? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[3] PASSED' E fnmatch: '*::test?4? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[4] PASSED' E fnmatch: '*::test?5? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[5] PASSED' E fnmatch: '*::test?6? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[6] PASSED' E fnmatch: '*::test?7? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[7] PASSED' E fnmatch: '*::test?8? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[8] PASSED' E fnmatch: '*::test?9? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[9] PASSED' E fnmatch: '*::test?10? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[10] SKIPPED' E fnmatch: '*::test?11? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[11] SKIPPED' E fnmatch: '*::test?12? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[12] SKIPPED' E fnmatch: '*::test?13? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[13] SKIPPED' E fnmatch: '*::test?14? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[14] SKIPPED' E fnmatch: '*::test?15? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[15] SKIPPED' E fnmatch: '*::test?16? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[16] SKIPPED' E fnmatch: '*::test?17? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[17] SKIPPED' E fnmatch: '*::test?18? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[18] SKIPPED' E fnmatch: '*::test?19? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[19] SKIPPED' E fnmatch: '*::test?20? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[20] SKIPPED' E fnmatch: '*::test?21? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[21] SKIPPED' E fnmatch: '*::test?22? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[22] SKIPPED' E fnmatch: '*::test?23? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[23] SKIPPED' E fnmatch: '*::test?24? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[24] SKIPPED' E fnmatch: '*::test?25? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[25] SKIPPED' E fnmatch: '*::test?26? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[26] SKIPPED' E fnmatch: '*::test?27? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[27] SKIPPED' E fnmatch: '*::test?28? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[28] SKIPPED' E fnmatch: '*::test?29? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[29] SKIPPED' E fnmatch: '*::test?30? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[30] SKIPPED' E fnmatch: '*::test?31? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[31] SKIPPED' E fnmatch: '*::test?32? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[32] SKIPPED' E fnmatch: '*::test?33? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[33] SKIPPED' E fnmatch: '*::test?34? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[34] SKIPPED' E fnmatch: '*::test?35? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[35] SKIPPED' E fnmatch: '*::test?36? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[36] SKIPPED' E fnmatch: '*::test?37? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[37] SKIPPED' E fnmatch: '*::test?38? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[38] SKIPPED' E fnmatch: '*::test?39? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[39] SKIPPED' E fnmatch: '*::test?40? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[40] SKIPPED' E fnmatch: '*::test?41? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[41] SKIPPED' E fnmatch: '*::test?42? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[42] SKIPPED' E fnmatch: '*::test?43? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[43] SKIPPED' E fnmatch: '*::test?44? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[44] SKIPPED' E fnmatch: '*::test?45? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[45] SKIPPED' E fnmatch: '*::test?46? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[46] SKIPPED' E fnmatch: '*::test?47? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[47] SKIPPED' E fnmatch: '*::test?48? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[48] SKIPPED' E fnmatch: '*::test?49? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[49] SKIPPED' E nomatch: '* 10 passed, 40 skipped in ?.?? seconds *' E and: '' E and: '======================== 10 passed, 40 skipped in 1.11s ========================' E remains unmatched: '* 10 passed, 40 skipped in ?.?? seconds *' /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/tests/test_flakefinder.py:166: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_max_minutes0 plugins: flakefinder-0.1.1 collecting ... collected 50 items test_flake_max_minutes.py::TestTimePatch::test[0] PASSED test_flake_max_minutes.py::TestTimePatch::test[1] PASSED test_flake_max_minutes.py::TestTimePatch::test[2] PASSED test_flake_max_minutes.py::TestTimePatch::test[3] PASSED test_flake_max_minutes.py::TestTimePatch::test[4] PASSED test_flake_max_minutes.py::TestTimePatch::test[5] PASSED test_flake_max_minutes.py::TestTimePatch::test[6] PASSED test_flake_max_minutes.py::TestTimePatch::test[7] PASSED test_flake_max_minutes.py::TestTimePatch::test[8] PASSED test_flake_max_minutes.py::TestTimePatch::test[9] PASSED test_flake_max_minutes.py::TestTimePatch::test[10] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[11] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[12] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[13] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[14] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[15] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[16] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[17] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[18] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[19] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[20] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[21] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[22] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[23] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[24] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[25] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[26] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[27] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[28] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[29] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[30] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[31] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[32] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[33] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[34] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[35] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[36] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[37] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[38] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[39] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[40] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[41] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[42] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[43] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[44] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[45] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[46] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[47] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[48] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[49] SKIPPED ======================== 10 passed, 40 skipped in 1.11s ======================== __________________________ test_flake_max_minutes[5] ___________________________ testdir = minutes = 5 @pytest.mark.parametrize("minutes", (1, 5, 10)) def test_flake_max_minutes(testdir, minutes): """Test --flake-max-minutes= option.""" # On the 10th iteration we monkey-patch time.time to advance time past the # limit. testdir.makepyfile(""" import time class TestTimePatch(object): def setup_class(cls): cls.count = 1 cls.orig_time = time.time def teardown_class(cls): # Put back the old time when the test is over. That way we # don't report the tests as taking 900 seconds. time.time = cls.orig_time def test(self): if TestTimePatch.count == 10: cur_time = time.time() # Move time 1 second past the limit at least. time.time = lambda: cur_time + %d * 60 + 1 TestTimePatch.count += 1 """ % minutes) # Run pytest. result = testdir.runpytest('--flake-finder', '-v', '--flake-max-minutes=%d' % minutes, '-s') passing_runs = 10 runs = pytest_flakefinder.DEFAULT_FLAKE_RUNS # Check output. result.stdout.fnmatch_lines( # fnmatch doesn't like `[` characters so I use `?`. ['collecting ... collected %d items' % runs] + ['*::test?%d? PASSED*' % i for i in range(min(runs, passing_runs))] + ['*::test?%d? SKIPPED*' % i for i in range(passing_runs, runs)] + # Test for the test, make sure the time isn't modified when coming out. > ['* 10 passed, 40 skipped in ?.?? seconds *'] ) E Failed: nomatch: 'collecting ... collected 50 items' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python' E and: 'cachedir: .pytest_cache' E and: 'rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_max_minutes1' E and: 'plugins: flakefinder-0.1.1' E exact match: 'collecting ... collected 50 items' E nomatch: '*::test?0? PASSED*' E and: '' E fnmatch: '*::test?0? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[0] PASSED' E fnmatch: '*::test?1? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[1] PASSED' E fnmatch: '*::test?2? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[2] PASSED' E fnmatch: '*::test?3? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[3] PASSED' E fnmatch: '*::test?4? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[4] PASSED' E fnmatch: '*::test?5? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[5] PASSED' E fnmatch: '*::test?6? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[6] PASSED' E fnmatch: '*::test?7? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[7] PASSED' E fnmatch: '*::test?8? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[8] PASSED' E fnmatch: '*::test?9? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[9] PASSED' E fnmatch: '*::test?10? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[10] SKIPPED' E fnmatch: '*::test?11? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[11] SKIPPED' E fnmatch: '*::test?12? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[12] SKIPPED' E fnmatch: '*::test?13? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[13] SKIPPED' E fnmatch: '*::test?14? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[14] SKIPPED' E fnmatch: '*::test?15? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[15] SKIPPED' E fnmatch: '*::test?16? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[16] SKIPPED' E fnmatch: '*::test?17? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[17] SKIPPED' E fnmatch: '*::test?18? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[18] SKIPPED' E fnmatch: '*::test?19? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[19] SKIPPED' E fnmatch: '*::test?20? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[20] SKIPPED' E fnmatch: '*::test?21? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[21] SKIPPED' E fnmatch: '*::test?22? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[22] SKIPPED' E fnmatch: '*::test?23? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[23] SKIPPED' E fnmatch: '*::test?24? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[24] SKIPPED' E fnmatch: '*::test?25? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[25] SKIPPED' E fnmatch: '*::test?26? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[26] SKIPPED' E fnmatch: '*::test?27? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[27] SKIPPED' E fnmatch: '*::test?28? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[28] SKIPPED' E fnmatch: '*::test?29? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[29] SKIPPED' E fnmatch: '*::test?30? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[30] SKIPPED' E fnmatch: '*::test?31? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[31] SKIPPED' E fnmatch: '*::test?32? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[32] SKIPPED' E fnmatch: '*::test?33? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[33] SKIPPED' E fnmatch: '*::test?34? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[34] SKIPPED' E fnmatch: '*::test?35? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[35] SKIPPED' E fnmatch: '*::test?36? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[36] SKIPPED' E fnmatch: '*::test?37? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[37] SKIPPED' E fnmatch: '*::test?38? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[38] SKIPPED' E fnmatch: '*::test?39? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[39] SKIPPED' E fnmatch: '*::test?40? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[40] SKIPPED' E fnmatch: '*::test?41? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[41] SKIPPED' E fnmatch: '*::test?42? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[42] SKIPPED' E fnmatch: '*::test?43? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[43] SKIPPED' E fnmatch: '*::test?44? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[44] SKIPPED' E fnmatch: '*::test?45? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[45] SKIPPED' E fnmatch: '*::test?46? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[46] SKIPPED' E fnmatch: '*::test?47? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[47] SKIPPED' E fnmatch: '*::test?48? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[48] SKIPPED' E fnmatch: '*::test?49? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[49] SKIPPED' E nomatch: '* 10 passed, 40 skipped in ?.?? seconds *' E and: '' E and: '======================== 10 passed, 40 skipped in 1.56s ========================' E remains unmatched: '* 10 passed, 40 skipped in ?.?? seconds *' /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/tests/test_flakefinder.py:166: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_max_minutes1 plugins: flakefinder-0.1.1 collecting ... collected 50 items test_flake_max_minutes.py::TestTimePatch::test[0] PASSED test_flake_max_minutes.py::TestTimePatch::test[1] PASSED test_flake_max_minutes.py::TestTimePatch::test[2] PASSED test_flake_max_minutes.py::TestTimePatch::test[3] PASSED test_flake_max_minutes.py::TestTimePatch::test[4] PASSED test_flake_max_minutes.py::TestTimePatch::test[5] PASSED test_flake_max_minutes.py::TestTimePatch::test[6] PASSED test_flake_max_minutes.py::TestTimePatch::test[7] PASSED test_flake_max_minutes.py::TestTimePatch::test[8] PASSED test_flake_max_minutes.py::TestTimePatch::test[9] PASSED test_flake_max_minutes.py::TestTimePatch::test[10] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[11] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[12] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[13] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[14] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[15] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[16] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[17] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[18] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[19] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[20] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[21] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[22] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[23] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[24] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[25] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[26] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[27] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[28] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[29] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[30] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[31] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[32] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[33] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[34] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[35] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[36] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[37] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[38] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[39] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[40] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[41] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[42] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[43] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[44] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[45] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[46] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[47] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[48] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[49] SKIPPED ======================== 10 passed, 40 skipped in 1.56s ======================== __________________________ test_flake_max_minutes[10] __________________________ testdir = minutes = 10 @pytest.mark.parametrize("minutes", (1, 5, 10)) def test_flake_max_minutes(testdir, minutes): """Test --flake-max-minutes= option.""" # On the 10th iteration we monkey-patch time.time to advance time past the # limit. testdir.makepyfile(""" import time class TestTimePatch(object): def setup_class(cls): cls.count = 1 cls.orig_time = time.time def teardown_class(cls): # Put back the old time when the test is over. That way we # don't report the tests as taking 900 seconds. time.time = cls.orig_time def test(self): if TestTimePatch.count == 10: cur_time = time.time() # Move time 1 second past the limit at least. time.time = lambda: cur_time + %d * 60 + 1 TestTimePatch.count += 1 """ % minutes) # Run pytest. result = testdir.runpytest('--flake-finder', '-v', '--flake-max-minutes=%d' % minutes, '-s') passing_runs = 10 runs = pytest_flakefinder.DEFAULT_FLAKE_RUNS # Check output. result.stdout.fnmatch_lines( # fnmatch doesn't like `[` characters so I use `?`. ['collecting ... collected %d items' % runs] + ['*::test?%d? PASSED*' % i for i in range(min(runs, passing_runs))] + ['*::test?%d? SKIPPED*' % i for i in range(passing_runs, runs)] + # Test for the test, make sure the time isn't modified when coming out. > ['* 10 passed, 40 skipped in ?.?? seconds *'] ) E Failed: nomatch: 'collecting ... collected 50 items' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python' E and: 'cachedir: .pytest_cache' E and: 'rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_max_minutes2' E and: 'plugins: flakefinder-0.1.1' E exact match: 'collecting ... collected 50 items' E nomatch: '*::test?0? PASSED*' E and: '' E fnmatch: '*::test?0? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[0] PASSED' E fnmatch: '*::test?1? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[1] PASSED' E fnmatch: '*::test?2? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[2] PASSED' E fnmatch: '*::test?3? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[3] PASSED' E fnmatch: '*::test?4? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[4] PASSED' E fnmatch: '*::test?5? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[5] PASSED' E fnmatch: '*::test?6? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[6] PASSED' E fnmatch: '*::test?7? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[7] PASSED' E fnmatch: '*::test?8? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[8] PASSED' E fnmatch: '*::test?9? PASSED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[9] PASSED' E fnmatch: '*::test?10? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[10] SKIPPED' E fnmatch: '*::test?11? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[11] SKIPPED' E fnmatch: '*::test?12? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[12] SKIPPED' E fnmatch: '*::test?13? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[13] SKIPPED' E fnmatch: '*::test?14? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[14] SKIPPED' E fnmatch: '*::test?15? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[15] SKIPPED' E fnmatch: '*::test?16? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[16] SKIPPED' E fnmatch: '*::test?17? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[17] SKIPPED' E fnmatch: '*::test?18? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[18] SKIPPED' E fnmatch: '*::test?19? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[19] SKIPPED' E fnmatch: '*::test?20? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[20] SKIPPED' E fnmatch: '*::test?21? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[21] SKIPPED' E fnmatch: '*::test?22? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[22] SKIPPED' E fnmatch: '*::test?23? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[23] SKIPPED' E fnmatch: '*::test?24? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[24] SKIPPED' E fnmatch: '*::test?25? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[25] SKIPPED' E fnmatch: '*::test?26? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[26] SKIPPED' E fnmatch: '*::test?27? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[27] SKIPPED' E fnmatch: '*::test?28? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[28] SKIPPED' E fnmatch: '*::test?29? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[29] SKIPPED' E fnmatch: '*::test?30? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[30] SKIPPED' E fnmatch: '*::test?31? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[31] SKIPPED' E fnmatch: '*::test?32? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[32] SKIPPED' E fnmatch: '*::test?33? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[33] SKIPPED' E fnmatch: '*::test?34? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[34] SKIPPED' E fnmatch: '*::test?35? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[35] SKIPPED' E fnmatch: '*::test?36? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[36] SKIPPED' E fnmatch: '*::test?37? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[37] SKIPPED' E fnmatch: '*::test?38? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[38] SKIPPED' E fnmatch: '*::test?39? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[39] SKIPPED' E fnmatch: '*::test?40? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[40] SKIPPED' E fnmatch: '*::test?41? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[41] SKIPPED' E fnmatch: '*::test?42? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[42] SKIPPED' E fnmatch: '*::test?43? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[43] SKIPPED' E fnmatch: '*::test?44? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[44] SKIPPED' E fnmatch: '*::test?45? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[45] SKIPPED' E fnmatch: '*::test?46? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[46] SKIPPED' E fnmatch: '*::test?47? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[47] SKIPPED' E fnmatch: '*::test?48? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[48] SKIPPED' E fnmatch: '*::test?49? SKIPPED*' E with: 'test_flake_max_minutes.py::TestTimePatch::test[49] SKIPPED' E nomatch: '* 10 passed, 40 skipped in ?.?? seconds *' E and: '' E and: '======================== 10 passed, 40 skipped in 1.11s ========================' E remains unmatched: '* 10 passed, 40 skipped in ?.?? seconds *' /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/tests/test_flakefinder.py:166: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_max_minutes2 plugins: flakefinder-0.1.1 collecting ... collected 50 items test_flake_max_minutes.py::TestTimePatch::test[0] PASSED test_flake_max_minutes.py::TestTimePatch::test[1] PASSED test_flake_max_minutes.py::TestTimePatch::test[2] PASSED test_flake_max_minutes.py::TestTimePatch::test[3] PASSED test_flake_max_minutes.py::TestTimePatch::test[4] PASSED test_flake_max_minutes.py::TestTimePatch::test[5] PASSED test_flake_max_minutes.py::TestTimePatch::test[6] PASSED test_flake_max_minutes.py::TestTimePatch::test[7] PASSED test_flake_max_minutes.py::TestTimePatch::test[8] PASSED test_flake_max_minutes.py::TestTimePatch::test[9] PASSED test_flake_max_minutes.py::TestTimePatch::test[10] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[11] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[12] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[13] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[14] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[15] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[16] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[17] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[18] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[19] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[20] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[21] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[22] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[23] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[24] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[25] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[26] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[27] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[28] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[29] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[30] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[31] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[32] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[33] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[34] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[35] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[36] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[37] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[38] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[39] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[40] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[41] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[42] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[43] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[44] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[45] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[46] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[47] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[48] SKIPPED test_flake_max_minutes.py::TestTimePatch::test[49] SKIPPED ======================== 10 passed, 40 skipped in 1.11s ======================== __________________________ test_flake_derived_classes __________________________ testdir = def test_flake_derived_classes(testdir): """Tests that if two tests share the same function they still get duped properly.""" testdir.makepyfile(""" import unittest class Base(object): def runTest(self): pass class TestMoreAwesome(Base, unittest.TestCase): pass class TestAwesome(Base, unittest.TestCase): pass """) # Run pytest. flags = ['--flake-finder', '-v', '-k', 'TestAwesome'] result = testdir.runpytest(*flags) # Check output. result.stdout.fnmatch_lines( # NB: unitest TestCases don't increment the collected items. ['collecting ... collected 2 items'] + # The bug was that TestAwesome wouldn't run multiple times. ['*::TestAwesome::runTest PASSED*' > for _ in range(pytest_flakefinder.DEFAULT_FLAKE_RUNS)] ) E Failed: nomatch: 'collecting ... collected 2 items' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python' E and: 'cachedir: .pytest_cache' E and: 'rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_derived_classes0' E and: 'plugins: flakefinder-0.1.1' E and: 'collecting ... collected 2 items / 1 deselected / 1 selected' E and: '' E and: 'test_flake_derived_classes.py::TestAwesome::runTest PASSED [100%]' E and: '' E and: '======================= 1 passed, 1 deselected in 0.19s ========================' E remains unmatched: 'collecting ... collected 2 items' /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/tests/test_flakefinder.py:197: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.6.7, pytest-5.3.1, py-1.8.0, pluggy-0.13.1 -- /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-travis/pytest-33/test_flake_derived_classes0 plugins: flakefinder-0.1.1 collecting ... collected 2 items / 1 deselected / 1 selected test_flake_derived_classes.py::TestAwesome::runTest PASSED [100%] ======================= 1 passed, 1 deselected in 0.19s ======================== =============================== warnings summary =============================== tests/test_flakefinder.py::test_help_message tests/test_flakefinder.py::test_repeat_success[flags0-50] tests/test_flakefinder.py::test_repeat_success[flags1-1] tests/test_flakefinder.py::test_repeat_success[flags2-25] tests/test_flakefinder.py::test_unittest_repeats[flags0-50] tests/test_flakefinder.py::test_unittest_repeats[flags1-1] tests/test_flakefinder.py::test_unittest_repeats[flags2-25] tests/test_flakefinder.py::test_flaky_test[flags0-10] tests/test_flakefinder.py::test_flaky_test[flags1-25] tests/test_flakefinder.py::test_flaky_test[flags2-50] tests/test_flakefinder.py::test_parametrized_tests tests/test_flakefinder.py::test_flake_max_minutes[1] tests/test_flakefinder.py::test_flake_max_minutes[5] tests/test_flakefinder.py::test_flake_max_minutes[10] tests/test_flakefinder.py::test_flake_derived_classes tests/test_flakefinder.py::test_fixture_parametrization_with_similar_test_names /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/lib/python3.6/site-packages/pytest_flakefinder.py:25: DeprecationWarning: pytest now uses argparse. "%default" should be changed to "%(default)s" help="number of times to repeat the tests. (default: %default)") tests/test_flakefinder.py::test_help_message tests/test_flakefinder.py::test_repeat_success[flags0-50] tests/test_flakefinder.py::test_repeat_success[flags1-1] tests/test_flakefinder.py::test_repeat_success[flags2-25] tests/test_flakefinder.py::test_unittest_repeats[flags0-50] tests/test_flakefinder.py::test_unittest_repeats[flags1-1] tests/test_flakefinder.py::test_unittest_repeats[flags2-25] tests/test_flakefinder.py::test_flaky_test[flags0-10] tests/test_flakefinder.py::test_flaky_test[flags1-25] tests/test_flakefinder.py::test_flaky_test[flags2-50] tests/test_flakefinder.py::test_parametrized_tests tests/test_flakefinder.py::test_flake_max_minutes[1] tests/test_flakefinder.py::test_flake_max_minutes[5] tests/test_flakefinder.py::test_flake_max_minutes[10] tests/test_flakefinder.py::test_flake_derived_classes tests/test_flakefinder.py::test_fixture_parametrization_with_similar_test_names /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/lib/python3.6/site-packages/pytest_flakefinder.py:32: DeprecationWarning: pytest now uses argparse. "%default" should be changed to "%(default)s" help="Don't run for longer than this parameter. (default: %default)") -- Docs: https://docs.pytest.org/en/latest/warnings.html ================== 6 failed, 10 passed, 32 warnings in 37.48s ================== ERROR: InvocationError for command /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/.tox/py36/bin/py.test (exited with code 1) ___________________________________ summary ____________________________________ ERROR: py36: commands failed write json report at: /tmp/tmpt_6wz3mn/pytest-flakefinder-0.1.1/result.json Time: 105.7 seconds