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."""
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)
{'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):