aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xtesting/core/robotframework.py13
-rw-r--r--xtesting/tests/unit/core/test_robotframework.py25
2 files changed, 31 insertions, 7 deletions
diff --git a/xtesting/core/robotframework.py b/xtesting/core/robotframework.py
index 775ed1ce..2952de60 100644
--- a/xtesting/core/robotframework.py
+++ b/xtesting/core/robotframework.py
@@ -56,6 +56,7 @@ class RobotFramework(testcase.TestCase):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.xml_file = os.path.join(self.res_dir, 'output.xml')
+ self.deny_skipping = kwargs.get("deny_skipping", False)
def parse_results(self):
"""Parse output.xml and get the details in it."""
@@ -63,9 +64,15 @@ class RobotFramework(testcase.TestCase):
visitor = ResultVisitor()
result.visit(visitor)
try:
- self.result = 100 * (
- result.suite.statistics.passed /
- result.suite.statistics.total)
+ if self.deny_skipping:
+ self.result = 100 * (
+ result.suite.statistics.passed /
+ result.suite.statistics.total)
+ else:
+ self.result = 100 * ((
+ result.suite.statistics.passed +
+ result.suite.statistics.skipped) /
+ result.suite.statistics.total)
except ZeroDivisionError:
self.__logger.error("No test has been run")
self.start_time = timestamp_to_secs(result.suite.starttime)
diff --git a/xtesting/tests/unit/core/test_robotframework.py b/xtesting/tests/unit/core/test_robotframework.py
index f36625e6..bbd99f50 100644
--- a/xtesting/tests/unit/core/test_robotframework.py
+++ b/xtesting/tests/unit/core/test_robotframework.py
@@ -86,25 +86,42 @@ class ParseResultTesting(unittest.TestCase):
{'description': config['name'], 'tests': []})
def test_null_passed(self):
- self._config.update({'statistics.passed': 0,
+ self._config.update({'statistics.skipped': 0,
+ 'statistics.passed': 0,
'statistics.total': 20})
self._test_result(self._config, 0)
def test_no_test(self):
- self._config.update({'statistics.passed': 20,
+ self._config.update({'statistics.skipped': 0,
+ 'statistics.passed': 20,
'statistics.total': 0})
self._test_result(self._config, 0)
def test_half_success(self):
- self._config.update({'statistics.passed': 10,
+ self._config.update({'statistics.skipped': 0,
+ 'statistics.passed': 10,
'statistics.total': 20})
self._test_result(self._config, 50)
def test_success(self):
- self._config.update({'statistics.passed': 20,
+ self._config.update({'statistics.skipped': 0,
+ 'statistics.passed': 20,
'statistics.total': 20})
self._test_result(self._config, 100)
+ def test_skip_excluded(self):
+ self.test.deny_skipping = True
+ self._config.update({'statistics.skipped': 1,
+ 'statistics.passed': 4,
+ 'statistics.total': 5})
+ self._test_result(self._config, 80)
+
+ def test_skip_included(self):
+ self._config.update({'statistics.skipped': 1,
+ 'statistics.passed': 4,
+ 'statistics.total': 5})
+ self._test_result(self._config, 100)
+
class GenerateReportTesting(unittest.TestCase):