From 1fa07e74ae7b37823e99492d0ddf6fc4f08e6b06 Mon Sep 17 00:00:00 2001 From: Tatu Aalto Date: Sat, 6 Jun 2026 00:13:52 +0300 Subject: [PATCH] fix: stop coverage without start Fixes: #3991 --- Browser/keywords/coverage.py | 11 +++++++---- atest/test/01_Browser_Management/coverage.robot | 8 ++++++++ node/playwright-wrapper/playwright-state.ts | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Browser/keywords/coverage.py b/Browser/keywords/coverage.py index 7ea330196..680c89200 100644 --- a/Browser/keywords/coverage.py +++ b/Browser/keywords/coverage.py @@ -20,7 +20,7 @@ from ..base import LibraryComponent from ..generated.playwright_pb2 import Request -from ..utils import CoverageType, keyword, logger +from ..utils import ROBOT_FRAMEWORK_BROWSER_NO_SET, CoverageType, keyword, logger class Coverage(LibraryComponent): @@ -89,7 +89,7 @@ def start_coverage( @keyword(tags=("Getter", "Coverage")) def stop_coverage( self, - ) -> Path: + ) -> Path | None: """Stops the coverage for the current page. Creates a coverage report by using @@ -97,12 +97,15 @@ def stop_coverage( To see the default and all possible options, see [https://github.com/cenfun/monocart-coverage-reports/blob/HEAD/lib/default/options.js|options.js] file for more details. Returns the path to the folder where - coverage reported. + coverage reported if coverage was started, otherwise returns `None`. """ logger.info("Stopping coverage") with self.playwright.grpc_channel() as stub: response = stub.StopCoverage(Request.Empty()) - logger.info(response.log) + logger.info(response.log) + if response.body == ROBOT_FRAMEWORK_BROWSER_NO_SET: + logger.info("Coverage was not started, no report generated.") + return None coverage_dir = Path(response.body) coverage_index_html = list(coverage_dir.glob("*.html")) if not coverage_index_html: diff --git a/atest/test/01_Browser_Management/coverage.robot b/atest/test/01_Browser_Management/coverage.robot index d6c33c615..d70870a48 100644 --- a/atest/test/01_Browser_Management/coverage.robot +++ b/atest/test/01_Browser_Management/coverage.robot @@ -269,6 +269,14 @@ Merge Coverage Reports Invalid Config File Log Caught expected error ${error} END +Only Stop Coverage + [Documentation] ... + ... LOG 1:2 INFO Stopping coverage + ... LOG 1:3 INFO Coverage not started + ... LOG 1:4 INFO Coverage was not started, no report generated. + ${result} = Stop Coverage + Should Be Equal ${result} ${None} + *** Keywords *** Open Page And Store ID &{page_info} = New Page diff --git a/node/playwright-wrapper/playwright-state.ts b/node/playwright-wrapper/playwright-state.ts index 5f918b89c..a96632775 100644 --- a/node/playwright-wrapper/playwright-state.ts +++ b/node/playwright-wrapper/playwright-state.ts @@ -1166,7 +1166,7 @@ async function _saveCoverageReport(activeIndexedPage: IndexedPage): Promise