jeffwright13 / pytest-tally

A Pytest plugin that shows a running tally of test suite stats in realtime
MIT License
5 stars 0 forks source link

Outcomes not correct in all cases #1

Open jeffwright13 opened 1 year ago

jeffwright13 commented 1 year ago

Need to fix internal outcome classification so they match what Pytest shows in the == short test summary == section.

jeffwright13 commented 1 year ago

Improved with upcoming relrease, but still needs tweaking, because not all outcomes match.

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━┓
┃ Test NodeId                                                                                         ┃ Duration  ┃ Outcome ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━┩
│ demo_tests/test_0.py::test0_pass_1                                                                  │ 50.4 ms   │ failed  │
│ demo_tests/test_0.py::test0_pass_2_logs                                                             │ 2.0039 ms │ passed  │
│ demo_tests/test_0.py::test0_pass_3_error_in_fixture                                                 │ 2.0983 ms │ passed  │
│ demo_tests/test_0.py::test0_fail_1                                                                  │ 6.227 ms  │ failed  │
│ demo_tests/test_0.py::test0_skip                                                                    │ 18.271 ms │ passed  │
│ demo_tests/test_0.py::test0_xfail                                                                   │ 6.0532 ms │ XFailed │
│ demo_tests/test_0.py::test0_xpass                                                                   │ 2.8989 ms │ XPassed │
│ demo_tests/test_0.py::test0_warning                                                                 │ 2.5411 ms │ passed  │
│ demo_tests/test_0.py::test_flaky_3                                                                  │ 3.1979 ms │ passed  │
│ demo_tests/test_1.py::test_a_ok                                                                     │ 992.4 ms  │ passed  │
│ demo_tests/test_1.py::test_b_fail                                                                   │ 1.051 s   │ failed  │
│ demo_tests/test_1.py::test_c_error                                                                  │ 1.641 ms  │ failed  │
│ demo_tests/test_1.py::test_d1_skip_inline                                                           │ 1.0406 s  │ skipped │
│ demo_tests/test_1.py::test_d2_skip                                                                  │ 1.0613 s  │ passed  │
│ demo_tests/test_1.py::test_d3_skip_decorator                                                        │ 1.0233 s  │ skipped │
│ demo_tests/test_1.py::test_e1_xfail_by_inline_and_has_reason                                        │ 1.0664 s  │ XFailed │
│ demo_tests/test_1.py::test_e2_xfail_by_decorator_and_has_reason                                     │ 1.0059 s  │ XFailed │
│ demo_tests/test_1.py::test_f1_xfails_by_inline_even_though_assertTrue_happens_before_pytestDotXfail │ 1.0997 s  │ XFailed │
│ demo_tests/test_1.py::test_f2_xpass_by_xfail_decorator_and_has_reason                               │ 1.0323 s  │ XPassed │
│ demo_tests/test_1.py::test_g_eval_parameterized[3+5-8]                                              │ 988.06 ms │ passed  │
│ demo_tests/test_1.py::test_g_eval_parameterized[2+4-6]                                              │ 999.88 ms │ passed  │
│ demo_tests/test_1.py::test_g_eval_parameterized[6*9-42]                                             │ 979.67 ms │ failed  │
│ demo_tests/test_1.py::test_1_passes_and_has_logging_output                                          │ 1.0405 s  │ passed  │
│ demo_tests/test_1.py::test_2_fails_and_has_logging_output                                           │ 1.0608 s  │ failed  │
│ demo_tests/test_1.py::test_3_fails                                                                  │ 1.0174 s  │ failed  │
│ demo_tests/test_1.py::test_4_passes                                                                 │ 1.0101 s  │ passed  │
│ demo_tests/test_1.py::test_5_marked_SKIP                                                            │ 17.155 ms │ passed  │
│ demo_tests/test_1.py::test_6_marked_xfail_by_decorator_but_passes_and_has_no_reason                 │ 1.0191 s  │ XPassed │
│ demo_tests/test_1.py::test_7_marked_xfail_by_decorator_and_fails_and_has_no_reason                  │ 994.77 ms │ XFailed │
│ demo_tests/test_1.py::test_8_causes_a_warning                                                       │ 1.0593 s  │ failed  │
│ demo_tests/test_1.py::test_9_lorem_fails                                                            │ 10.888 ms │ failed  │
│ demo_tests/test_1.py::test_10_fail_capturing                                                        │ 995.12 ms │ failed  │
│ demo_tests/test_1.py::test_10b_failed_capturing                                                     │ 1.0882 s  │ failed  │
│ demo_tests/test_1.py::test_11_pass_capturing                                                        │ 44.739 ms │ failed  │
│ demo_tests/test_1.py::test_12_fails_and_has_stdout                                                  │ 1.0144 s  │ failed  │
│ demo_tests/test_1.py::test_13_passes_and_has_stdout                                                 │ 946.47 ms │ passed  │
│ demo_tests/test_1.py::test_14_causes_error_pass_stderr_stdout_stdlog                                │ 1.637 ms  │ passed  │
│ demo_tests/test_1.py::test_15_causes_error_fail_stderr_stdout_stdlog                                │ 2.3451 ms │ passed  │
│ demo_tests/test_1.py::test_16_fail_compare_dicts_for_pytest_icdiff                                  │ 12.027 ms │ failed  │
│ demo_tests/test_random_results.py::test_1                                                           │ 12.407 ms │ failed  │
│ demo_tests/test_random_results.py::test_0                                                           │ 18.41 ms  │ failed  │
│ demo_tests/test_random_results.py::test_10                                                          │ 4.5941 ms │ passed  │
│ demo_tests/test_warnings.py::test_1_fails_with_warnings                                             │ 2.4029 s  │ failed  │
└─────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────┴─────────┘

versus

======================================= test session starts ========================================
platform darwin -- Python 3.10.5, pytest-7.2.2, pluggy-1.0.0 -- /Users/jwr003/coding/pytest-tally/venv/bin/python
cachedir: .pytest_cache
rootdir: /Users/jwr003/coding/pytest-tally
plugins: Faker-17.6.0, tally-0.1.0
collected 82 items / 38 deselected / 44 selected

demo_tests/test_0.py::test0_pass_1 FAILED                                                    [  2%]
demo_tests/test_0.py::test0_pass_2_logs PASSED                                               [  4%]
demo_tests/test_0.py::test0_pass_3_error_in_fixture ERROR                                    [  6%]
demo_tests/test_0.py::test0_fail_1 FAILED                                                    [  9%]
demo_tests/test_0.py::test0_skip PASSED                                                      [ 11%]
demo_tests/test_0.py::test0_xfail XFAIL                                                      [ 13%]
demo_tests/test_0.py::test0_xpass XPASS                                                      [ 15%]
demo_tests/test_0.py::test0_warning PASSED                                                   [ 18%]
demo_tests/test_0.py::test_flaky_3 PASSED                                                    [ 20%]
demo_tests/test_1.py::test_a_ok PASSED                                                       [ 22%]
demo_tests/test_1.py::test_b_fail FAILED                                                     [ 25%]
demo_tests/test_1.py::test_c_error ERROR                                                     [ 27%]
demo_tests/test_1.py::test_d1_skip_inline SKIPPED (Skipping this test with inline call t...) [ 29%]
demo_tests/test_1.py::test_d2_skip PASSED                                                    [ 31%]
demo_tests/test_1.py::test_d3_skip_decorator SKIPPED (Skipping this test with inline cal...) [ 34%]
demo_tests/test_1.py::test_e1_xfail_by_inline_and_has_reason XFAIL (Marked as Xfail with...) [ 36%]
demo_tests/test_1.py::test_e2_xfail_by_decorator_and_has_reason XFAIL (Marked as Xfail w...) [ 38%]
demo_tests/test_1.py::test_f1_xfails_by_inline_even_though_assertTrue_happens_before_pytestDotXfail XFAIL [ 40%]
demo_tests/test_1.py::test_f2_xpass_by_xfail_decorator_and_has_reason XPASS (Marked as X...) [ 43%]
demo_tests/test_1.py::test_g_eval_parameterized[3+5-8] PASSED                                [ 45%]
demo_tests/test_1.py::test_g_eval_parameterized[2+4-6] PASSED                                [ 47%]
demo_tests/test_1.py::test_g_eval_parameterized[6*9-42] FAILED                               [ 50%]
demo_tests/test_1.py::test_1_passes_and_has_logging_output PASSED                            [ 52%]
demo_tests/test_1.py::test_2_fails_and_has_logging_output FAILED                             [ 54%]
demo_tests/test_1.py::test_3_fails FAILED                                                    [ 56%]
demo_tests/test_1.py::test_4_passes PASSED                                                   [ 59%]
demo_tests/test_1.py::test_5_marked_SKIP SKIPPED (unconditional skip)                        [ 61%]
demo_tests/test_1.py::test_6_marked_xfail_by_decorator_but_passes_and_has_no_reason XPASS    [ 63%]
demo_tests/test_1.py::test_7_marked_xfail_by_decorator_and_fails_and_has_no_reason XFAIL     [ 65%]
demo_tests/test_1.py::test_8_causes_a_warning FAILED                                         [ 68%]
demo_tests/test_1.py::test_9_lorem_fails FAILED                                              [ 70%]
demo_tests/test_1.py::test_10_fail_capturing FAIL stdout not captured, going directly to sys.stdout
FAIL stderr not captured, going directly to sys.stderr
FAILED                                          [ 72%]
demo_tests/test_1.py::test_10b_failed_capturing FAILED stdout not captured, going directly to sys.stdout
FAILED stderr not captured, going directly to sys.stderr
FAILED                                       [ 75%]
demo_tests/test_1.py::test_11_pass_capturing FAILED                                          [ 77%]
demo_tests/test_1.py::test_12_fails_and_has_stdout FAILED                                    [ 79%]
demo_tests/test_1.py::test_13_passes_and_has_stdout PASSED                                   [ 81%]
demo_tests/test_1.py::test_14_causes_error_pass_stderr_stdout_stdlog ERROR                   [ 84%]
demo_tests/test_1.py::test_15_causes_error_fail_stderr_stdout_stdlog ERROR                   [ 86%]
demo_tests/test_1.py::test_16_fail_compare_dicts_for_pytest_icdiff FAILED                    [ 88%]
demo_tests/test_hoefling.py::test_1 FAILED                                                   [ 90%]
demo_tests/test_random_results.py::test_0 PASSED                                             [ 93%]
demo_tests/test_random_results.py::test_1 SKIPPED (Skipped: Serious inside else memory i...) [ 95%]
demo_tests/test_random_results.py::test_10 FAILED                                            [ 97%]
demo_tests/test_warnings.py::test_1_fails_with_warnings FAILED                               [100%]