Skip to content

Commit 2282b62

Browse files
committed
Improve empty suite handling
1 parent b419da5 commit 2282b62

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/robot/run.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,8 @@ def main(self, datasources, **options):
424424
LOGGER.info('Settings:\n%s' % unic(settings))
425425
builder = TestSuiteBuilder(settings['SuiteNames'],
426426
extension=settings.extension,
427-
rpa=settings.rpa)
427+
rpa=settings.rpa,
428+
allow_empty_suite=settings.run_empty_suite)
428429
suite = builder.build(*datasources)
429430
settings.rpa = suite.rpa
430431
suite.configure(**settings.suite_config)

src/robot/running/builder/builders.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@
2828

2929
class TestSuiteBuilder(object):
3030

31-
def __init__(self, include_suites=None, extension=None, rpa=None):
31+
def __init__(self, include_suites=None, extension=None, rpa=None,
32+
allow_empty_suite=False):
3233
self.rpa = rpa
3334
self.include_suites = include_suites
3435
self.extension = extension
36+
self.allow_empty_suite = allow_empty_suite
3537

3638
def build(self, *paths):
3739
"""
@@ -42,7 +44,10 @@ def build(self, *paths):
4244
self.extension).build(paths)
4345
parser = SuiteStructureParser(self.rpa)
4446
suite = parser.parse(structure)
45-
self._validate_test_counts(suite, multisource=len(paths) > 1)
47+
if not self.include_suites and not self.allow_empty_suite:
48+
self._validate_test_counts(suite, multisource=len(paths) > 1)
49+
# TODO: do we need `preserve_direct_children`?
50+
suite.remove_empty_suites(preserve_direct_children=len(paths) > 1)
4651
return suite
4752

4853
def _validate_test_counts(self, suite, multisource=False):
@@ -55,8 +60,6 @@ def validate(suite):
5560
else:
5661
for s in suite.suites:
5762
validate(s)
58-
# TODO: do we need `preserve_direct_children`?
59-
suite.remove_empty_suites(preserve_direct_children=multisource)
6063

6164

6265
class ResourceFileBuilder(object):

0 commit comments

Comments
 (0)