From c27985eb96bcb24799c004e6e754b6c02bb843eb Mon Sep 17 00:00:00 2001 From: Stas Seliverstov Date: Wed, 4 Jul 2018 21:42:16 +0300 Subject: [PATCH 1/3] fix windows tests --- allure-robotframework/test/library/run.py | 37 ++++++++++++----------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/allure-robotframework/test/library/run.py b/allure-robotframework/test/library/run.py index e9089a01..96fb0283 100644 --- a/allure-robotframework/test/library/run.py +++ b/allure-robotframework/test/library/run.py @@ -37,26 +37,27 @@ def robot_run_with_allure(work_dir, *args, **kwargs): stdout_file = os.path.join(output_dir, 'stdout.txt') - def target(*a, **kw): + arguments = (stdout_file, output_dir, allure_dir) + args + robot_process = Process(target=_robot_run, args=arguments, kwargs=kwargs) + robot_process.start() + robot_process.join() - # ToDo: fix it (_core not works correctly with multiprocessing) - import six - import allure_commons - if six.PY2: - reload(allure_commons._core) - else: - import importlib - importlib.reload(allure_commons._core) + return AllureReport(allure_dir) - listener = allure_robotframework(logger_path=allure_dir) - with open(stdout_file, 'w+') as stdout: - options = {"listener": listener, "outputdir": output_dir, "stdout": stdout} - options.update(kw) - run(*a, **options) +def _robot_run(stdout_file, output_dir, allure_dir, *args, **kwargs): + # ToDo: fix it (_core not works correctly with multiprocessing) + import six + import allure_commons + if six.PY2: + reload(allure_commons._core) + else: + import importlib + importlib.reload(allure_commons._core) - robot_process = Process(target=target, args=args, kwargs=kwargs) - robot_process.start() - robot_process.join() + listener = allure_robotframework(logger_path=allure_dir) - return AllureReport(allure_dir) + with open(stdout_file, 'w+') as stdout: + options = {"listener": listener, "outputdir": output_dir, "stdout": stdout} + options.update(kwargs) + run(*args, **options) From 8aa3459a6fb4917430023abc6e004dbaa2b5d16d Mon Sep 17 00:00:00 2001 From: Stas Seliverstov Date: Wed, 4 Jul 2018 22:42:55 +0300 Subject: [PATCH 2/3] another way to fix --- allure-robotframework/test/library/run.py | 32 ++++++++++------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/allure-robotframework/test/library/run.py b/allure-robotframework/test/library/run.py index 96fb0283..c6ebcf8c 100644 --- a/allure-robotframework/test/library/run.py +++ b/allure-robotframework/test/library/run.py @@ -1,7 +1,7 @@ import os +import robot from tempfile import mkdtemp from multiprocessing import Process -from robot import run from allure_robotframework import allure_robotframework from allure_commons_test.report import AllureReport @@ -30,22 +30,6 @@ def make_test_case(path, name, test_case): def robot_run_with_allure(work_dir, *args, **kwargs): - allure_dir = os.path.join(work_dir, 'allure') - - output_dir = os.path.join(work_dir, 'output') - os.mkdir(output_dir) - - stdout_file = os.path.join(output_dir, 'stdout.txt') - - arguments = (stdout_file, output_dir, allure_dir) + args - robot_process = Process(target=_robot_run, args=arguments, kwargs=kwargs) - robot_process.start() - robot_process.join() - - return AllureReport(allure_dir) - - -def _robot_run(stdout_file, output_dir, allure_dir, *args, **kwargs): # ToDo: fix it (_core not works correctly with multiprocessing) import six import allure_commons @@ -55,9 +39,21 @@ def _robot_run(stdout_file, output_dir, allure_dir, *args, **kwargs): import importlib importlib.reload(allure_commons._core) + allure_dir = os.path.join(work_dir, 'allure') listener = allure_robotframework(logger_path=allure_dir) + output_dir = os.path.join(work_dir, 'output') + os.mkdir(output_dir) + + stdout_file = os.path.join(output_dir, 'stdout.txt') + with open(stdout_file, 'w+') as stdout: options = {"listener": listener, "outputdir": output_dir, "stdout": stdout} options.update(kwargs) - run(*args, **options) + + robot_process = Process(target=robot.run, args=args, kwargs=options) + robot_process.start() + robot_process.join() + + return AllureReport(allure_dir) + From 6af4d48a0b28db5e1f01475fd1b81fb5b5066a81 Mon Sep 17 00:00:00 2001 From: Stas Seliverstov Date: Wed, 4 Jul 2018 23:25:18 +0300 Subject: [PATCH 3/3] finnaly fix it --- allure-robotframework/test/library/run.py | 25 ++++++----------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/allure-robotframework/test/library/run.py b/allure-robotframework/test/library/run.py index c6ebcf8c..acd44845 100644 --- a/allure-robotframework/test/library/run.py +++ b/allure-robotframework/test/library/run.py @@ -2,7 +2,6 @@ import robot from tempfile import mkdtemp from multiprocessing import Process -from allure_robotframework import allure_robotframework from allure_commons_test.report import AllureReport @@ -30,30 +29,18 @@ def make_test_case(path, name, test_case): def robot_run_with_allure(work_dir, *args, **kwargs): - # ToDo: fix it (_core not works correctly with multiprocessing) - import six - import allure_commons - if six.PY2: - reload(allure_commons._core) - else: - import importlib - importlib.reload(allure_commons._core) - allure_dir = os.path.join(work_dir, 'allure') - listener = allure_robotframework(logger_path=allure_dir) + os.mkdir(allure_dir) output_dir = os.path.join(work_dir, 'output') os.mkdir(output_dir) - stdout_file = os.path.join(output_dir, 'stdout.txt') - - with open(stdout_file, 'w+') as stdout: - options = {"listener": listener, "outputdir": output_dir, "stdout": stdout} - options.update(kwargs) + options = {"listener": "allure_robotframework;%s" % allure_dir, "outputdir": output_dir} + options.update(kwargs) - robot_process = Process(target=robot.run, args=args, kwargs=options) - robot_process.start() - robot_process.join() + robot_process = Process(target=robot.run, args=args, kwargs=options) + robot_process.start() + robot_process.join() return AllureReport(allure_dir)