Closed sakamomo554101 closed 2 years ago
これやりたい・・
対応検討する。
一つ目はメンテが重複するため、避ける。 二つ目か三つ目だが、多分、depends_onが三つ目だと対応できないかもしれない。
https://docs.python.org/ja/3/library/unittest.html#test-discovery ディスカバリを使って、テストをまとめて実行することが可能。
https://docs.python.org/ja/3/library/unittest.html#unittest.TestLoader.discover ふーむ、パッケージとして認識させるために、各フォルダにinit.pyが必要そう。
大量のインポートエラーが・・・笑 自作パッケージのインポートに問題がありそう。
=====================================================================
ERROR: api_gateway.test.test_api (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: api_gateway.test.test_api
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/conda/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/workspace/api_gateway/test/test_api.py", line 2, in <module>
from fastapi.testclient import TestClient
ModuleNotFoundError: No module named 'fastapi'
======================================================================
ERROR: db.test.test_bq_db_wrapper (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: db.test.test_bq_db_wrapper
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/conda/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/workspace/db/test/test_bq_db_wrapper.py", line 7, in <module>
from db_wrapper import BodyInfo, DBConfig, DBFactory, DBUtil, SummarizeJobInfo, SummarizeJobLog, SummarizeResult
File "/workspace/db/test/../db_wrapper.py", line 22, in <module>
from log import AbstractLogger
ImportError: cannot import name 'AbstractLogger' from 'log' (/workspace/log/__init__.py)
======================================================================
ERROR: db.test.test_db_wrapper (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: db.test.test_db_wrapper
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/conda/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/workspace/db/test/test_db_wrapper.py", line 8, in <module>
from db_wrapper import DBFactory, DBConfig, BodyInfo, SummarizeJobInfo, SummarizeResult, InferenceStatus
File "/workspace/db/test/../db_wrapper.py", line 22, in <module>
from log import AbstractLogger
ImportError: cannot import name 'AbstractLogger' from 'log' (/workspace/log/__init__.py)
======================================================================
ERROR: queue.test.test_queue_client (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: queue.test.test_queue_client
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/conda/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/workspace/queue/test/test_queue_client.py", line 7, in <module>
import kafka_helper
File "/workspace/queue/test/../kafka_helper.py", line 3, in <module>
from queue_client import QueueConfig
File "/workspace/queue/test/../queue_client.py", line 6, in <module>
from log import AbstractLogger
ImportError: cannot import name 'AbstractLogger' from 'log' (/workspace/log/__init__.py)
======================================================================
ERROR: summarizer.test.test_summarizer (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: summarizer.test.test_summarizer
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/conda/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/workspace/summarizer/test/test_summarizer.py", line 10, in <module>
from summarizer import T5Summarizer
ImportError: cannot import name 'T5Summarizer' from 'summarizer' (/workspace/summarizer/__init__.py)
logのパッケージ名がバッティングしてるかもなので、custom_logとかにリネームしておく。
queueも被ってそう・・
なるほど、init.pyを追加する -> パッケージに登録される -> 他のqueueパッケージと自前で作ったqueueパッケージの名前が被る -> 下記エラー
ImportError: Failed to import test module: api_gateway.test.test_api
Traceback (most recent call last):
File "/opt/conda/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/opt/conda/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/workspace/api_gateway/test/test_api.py", line 2, in <module>
from fastapi.testclient import TestClient
File "/opt/conda/lib/python3.8/site-packages/fastapi/testclient.py", line 1, in <module>
from starlette.testclient import TestClient as TestClient # noqa
File "/opt/conda/lib/python3.8/site-packages/starlette/testclient.py", line 16, in <module>
import requests
File "/opt/conda/lib/python3.8/site-packages/requests/__init__.py", line 43, in <module>
import urllib3
File "/opt/conda/lib/python3.8/site-packages/urllib3/__init__.py", line 7, in <module>
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "/opt/conda/lib/python3.8/site-packages/urllib3/connectionpool.py", line 53, in <module>
from .util.queue import LifoQueue
File "/opt/conda/lib/python3.8/site-packages/urllib3/util/queue.py", line 10, in <module>
class LifoQueue(queue.Queue):
AttributeError: module 'queue' has no attribute 'Queue'
以下の二つの手段が取れる。
summarizerも多分パッケージ名がバッティングしてそう
パッケージ名とファイル名がバッティングするのがNGだな。
テストは大丈夫そう。 念のため、アプリケーションも稼働させてみる。
概要
各コンテナごとのunittestをまとめて実行するようなスクリプトや別途構成を組むような対応を行う。 ※unittestを個別に実行するのが煩雑なので、まとめて簡易に実行したい