Summarize the problem:
I have ~1000 tests, tested with pytest-randomly. I know they fail due to coupling, when --randomly-seed=42, for Example:
test_1 OK
test_2 OK
...
test_x OK [the one I want to find]
...
test_y FAILED [ y and x are coupled ]
...
test_1000
I'd like to automatically find the smallest test sequence, that creates the coupling (for this example, it would be test_x -> test_y). Is there a way to do it?
What you've tried
-
Running the whole test suite until I found, that seed 42 creates an error.
-
I think this is solvable by running test cases 1000 times in
--randomly-seed=42order - each time excluding one test, and checking if tests still fail. If they fail, the excluded test is anoise, if they don't, the excluded test is necessary to reproduce the error. This way, after 1000 runs I should have a much smaller set of tests causing the error. But this sounds like something clearly already implemented. -
Other problem would be - how to recreate the exact test ordering, but without one
chosentest? -
I am basically looking for something that would look through a given sequence... similar way git rerere goes through git commits.
Aucun commentaire:
Enregistrer un commentaire