Skip to content
This repository has been archived by the owner on May 29, 2024. It is now read-only.

Does not work with allure-pytest #28

Open
jmatthews79 opened this issue Dec 19, 2018 · 20 comments
Open

Does not work with allure-pytest #28

jmatthews79 opened this issue Dec 19, 2018 · 20 comments
Labels
bug Something isn't working

Comments

@jmatthews79
Copy link

When I attempt to use pytest-parallel it prevents the allure report from being generated. for instance if I run:
pytest --tests-per-worker 4 --alluredir=reports/allure

no report is generated. If i take the tests per worker argument out the report works. Any idea why this would prevent the report from being saved?

@jmatthews79
Copy link
Author

looks like this is the same issue as the --junit one

@kevlened
Copy link
Owner

Hmm, I'd understand for --workers, but I'm not sure why it's not working for --tests-per-worker

@kevlened kevlened added the bug Something isn't working label Dec 19, 2018
@jmatthews79
Copy link
Author

Let me rephrase that just to be clear. It is being generated, but its showing 0 tests executed.

@jmatthews79
Copy link
Author

Hi @kevlened I was just curious if there was any plan to address the reporting bugs in the near future?

@kevlened
Copy link
Owner

Not in the near future (probably in months, not weeks or days). I'm not focusing on Browsertron much anymore and this library was a part of that work. I'll do my best to get to them when I can. I can provide guidance for any PRs though!

@jmatthews79
Copy link
Author

@kevlened Completely understand, I hope I didn't come off as rude. I appreciate the work you did to create this. If I knew python other than to write some Selenium tests Id love to help. :)

@kevlened
Copy link
Owner

No worries (and thanks)!

@SizovIgor
Copy link

@kevlened Can you tell me your idea about a time for fix this issue (Bug) ?

@SizovIgor
Copy link

Please, look my changes, it is help me to work with allure-pytest in paralel.
I'm test with --workers 2 and with 3,6,8,auto.
But it is have a trouble with --tests-per-worker when it is greather than 1. It is add N identical steps, where N = tests-per-worker

index 63d4175..8e71da4 100644
--- a/pytest_parallel/__init__.py
+++ b/pytest_parallel/__init__.py
@@ -8,6 +8,7 @@ import threading
 import queue as Queue
 from py._xmlgen import raw
 from multiprocessing import Manager, Process
+from allure_pytest.plugin import pytest_configure as original_pytest_configure
 
 __version__ = '0.0.9'
 
@@ -54,6 +55,7 @@ def run_test(session, item, nextitem):
 
 
 def process_with_threads(queue, session, tests_per_worker):
+    original_pytest_configure(allur_conf)
     threads = []
     for _ in range(tests_per_worker):
         thread = ThreadWorker(queue, session)
@@ -62,6 +64,9 @@ def process_with_threads(queue, session, tests_per_worker):
     [t.join() for t in threads]
 
 
+allur_conf = None
+
+
 class ThreadWorker(threading.Thread):
     def __init__(self, queue, session):
         threading.Thread.__init__(self)
@@ -69,6 +74,7 @@ class ThreadWorker(threading.Thread):
         self.session = session
 
     def run(self):
+        original_pytest_configure(allur_conf)
         while True:
             try:
                 index = self.queue.get_nowait()
@@ -87,6 +93,8 @@ class ThreadWorker(threading.Thread):
 
 @pytest.mark.trylast
 def pytest_configure(config):
+    global allur_conf
+    allur_conf = config
     workers = parse_config(config, 'workers')
     tests_per_worker = parse_config(config, 'tests_per_worker')
     if not config.option.collectonly and (workers or tests_per_worker):

@pmqs
Copy link

pmqs commented Mar 4, 2020

@SizovIgor did you get any further with getting tests-per-worker to work?

@kevlened
Copy link
Owner

kevlened commented Apr 30, 2020

The latest (0.1.0) is quite a big change that should resolve most reporting issues. It may solve this issue as well.

@aditya123456
Copy link

is this issue resolved? i am still facing this issue with 0.1.0

@EitanBe
Copy link

EitanBe commented Aug 25, 2020

Hi @kevlened
Thank you for your response.
I have same issue:
allure-pytest==2.8.6
pytest==6.0.1
pytest-parallel==0.1.0
Do you know when it can be resolve BTW, same with report portal.
Thanks!

@talgabza
Copy link

I'm facing the same issue

Any solution/workaround for this problem?

@eldbud
Copy link

eldbud commented Dec 29, 2020

Facing same issue.

@kevlened - If i were to try and change the current situation, do you have a recommendation for a starting point? where in the repo should i investigate?

@kevlened
Copy link
Owner

Thanks for the interest. Here's what I'd do:

  1. Repro
  2. Do the brief steps in CONTRIBUTING.md and make sure the existing tests were working.
  3. Write a failing test case similar to the one for pytest-html. pytest-allure needs to be added to tox.ini. I might skip this if I was unfamiliar with testing pytest plugins.
  4. I'd start by trying @SizovIgor's suggestion. The suggestion was prior to a pretty substantial change, but could be adapted.
  5. If that didn't work, I'd investigate the pytest-allure repo to determine how the reports are generated. There's probably some data that pytest-allure depends on that pytest-parallel isn't sharing across threads. All of pytest-parallel is a few hundred lines in this file.
  6. If I still couldn't figure it out, I'd open a PR with the test case (if I wrote one), so others could give it a shot.

If you try it, let me know if you run into any issues.

@Phincle
Copy link

Phincle commented May 26, 2021

Facing same issue.

1 similar comment
@door7474
Copy link

Facing same issue.

@Jabyn1031
Copy link

Any solution for this issue?

@b0mbays
Copy link

b0mbays commented Sep 8, 2022

Same issue still. Any progress on this?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests