Python multiprocessing: AttributeError: nemôžem náleve miestne objektu

0

Otázka

Napísal som ChatOps topánok pre nástroj pre spoluprácu Mattermost pomocou tohto rámca. Teraz sa snažím napísať a spustiť integráciu testov a použil som ich príklady. Tým, že klonovanie git úložiska môžete spustiť testy sami. Ich docker-compose.yml súbor bude fungovať len na Linuxový stroj. Ak chcete reprodukovať ho na Mac stroj, budete musieť upraviť docker-compose.yml k:

version: "3.7"

services:
  app:
    container_name: "mattermost-bot-test"
    build: .
    command: ./mm/docker-entry.sh
    ports:
      - "8065:8065"
    extra_hosts:
      - "dockerhost:127.0.0.1"

Po spustení príkazu docker-compose up -d Mattermost je k dispozícii na localhost:8065. Len som si vzal jeden jednoduchý test z ich projektu a skopíruje v base-test.py. Môžete vidieť moje zdrojový kód tu. Po spustení testu spustením príkazu pytest --capture=no --log-cli-level=DEBUG . to bude vrátiť sa nasledujúce chybové hlásenie: AttributeError: Can't pickle local object 'start_bot.<locals>.run_bot'. Táto chyba sa tiež zobrazuje na rovnaký test v prípade ich projektu. Chyba sa stane v riadku 92 v utils.py súbor

Čo robím zle?

2
0

Neviem, či ste už išli dole tejto ceste, ale myslím, že môžete dostať v minulosti morenie chyby tým, že run_bot trvať topánok, že sa bot.run() s ako argument a potom ich odovzdať do procesu.

2021-11-24 15:38:26

Neviem celkom pochopiť, čo ste mali na mysli. Snažil som sa viac vecí, ako je absolvovanie bot ako argument, ale bez úspechu :(
Lucas Scheepers
0

Pozrite sa na Akciu kartu na ktoré GitHub repozitára. Pytest zdá vykonať správne (ignorovanie výnimky na webhook test)

Tu je nedávnom spustení môžete použiť na porovnanie prostredie set-up: https://github.com/attzonko/mmpy_bot/runs/4289644769?check_suite_focus=true

2021-11-29 17:04:19

Mám presne rovnaký prostredie: Python 3.8.2 a Pytest 6.2.5. Tiež používam iný príkaz je uvedené v otázke vyššie a to sa vracia pickle error. Keď som skúste použiť príkaz, ktorý používate: pytest . -vv -n auto to vráti: unrecognized arguments: -n auto. Páči sa vám možno vedieť, prečo? Tiež som pridal túto otázku šesť dní pred a testy runned 7 dňami, možno to vysvetľuje, prečo sa teraz nedarí sa na moje miestnych stroj?
Lucas Scheepers

Tu je spustiť z 1 hod pred: github.com/attzonko/mmpy_bot/runs/...
Plazgoth

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................