diff --git a/platformio/test/reports/stdout.py b/platformio/test/reports/stdout.py index a361031f..bfeeca6a 100644 --- a/platformio/test/reports/stdout.py +++ b/platformio/test/reports/stdout.py @@ -48,6 +48,11 @@ class StdoutTestReport(TestReportBase): ) if tabular_data: + util.print_labeled_bar( + "SUMMARY", + is_error=is_error, + fg="red" if is_error else "green", + ) click.echo( tabulate( tabular_data, @@ -59,6 +64,9 @@ class StdoutTestReport(TestReportBase): err=is_error, ) + if failed_nums: + self.print_failed_test_cases() + util.print_labeled_bar( "%d test cases: %s%s%d succeeded in %s" % ( @@ -71,3 +79,21 @@ class StdoutTestReport(TestReportBase): is_error=is_error, fg="red" if is_error else "green", ) + + def print_failed_test_cases(self): + click.echo() + for test_suite in self.test_result.suites: + if test_suite.status != TestStatus.FAILED: + continue + util.print_labeled_bar( + click.style( + f"{test_suite.env_name}:{test_suite.test_name}", bold=True, fg="red" + ), + is_error=True, + sep="_", + ) + for test_case in test_suite.cases: + if test_case.status != TestStatus.FAILED: + continue + click.echo(test_case.stdout) + click.echo() diff --git a/tests/commands/test_test.py b/tests/commands/test_test.py index 43a7e3a1..eb15ab69 100644 --- a/tests/commands/test_test.py +++ b/tests/commands/test_test.py @@ -45,7 +45,7 @@ def test_calculator_example(tmp_path: Path): # test JUnit output junit_testsuites = ET.parse(junit_output_path).getroot() - assert int(junit_testsuites.get("tests")) == 11 + assert int(junit_testsuites.get("tests")) == 10 assert int(junit_testsuites.get("errors")) == 2 assert int(junit_testsuites.get("failures")) == 1 assert len(junit_testsuites.findall("testsuite")) == 6