現在正常に動作しているmy_appに一般的なカスタムTestCaseを使用したいと思います。私は、次の単純化されたディレクトリ構造を持っている:Python manage.pyテストアプリケーションを使用してカスタムSimpleTestCaseの子にImportErrorを実行
my_app
├── tests
│ ├── __init__.py
│ └── test_views
│ ├── __init__.py
│ ├── custom_test.py
│ ├── registration
│ │ ├── __init__.py
│ │ ├── test_login.py
└── views
|── __init__.py
├── registration
│ ├── __init__.py
│ ├── login.py
このようなCustomTestクラスを見て:
from django.test import SimpleTestCase
from django.test.client import Client
class CustomTest(SimpleTestCase):
def setUp(self):
self.client = Client()
は私が起動するテストは、次のいずれかです。
from tests.test_views.custom_test import CustomTest
class Test_Login(CustomTest):
def test_thing(self):
self.assertTrue(True)
「MY_APP 'ディレクトリがpythonpathにあり、すべてのモジュールにinit .pyファイルがあります。 Djangoはtest_login.pyでエラーを見つけることができます(たとえば、私がCustomTestを存在しないものに変更した場合)。実際の問題が発生する前にtest_login.pyが読み込まれ、正常にCustomTestをインポートして使用します。私がテストを起動したいときには:
python manage.py test my_app
私は次のエラーを取得する:
ImportError: Failed to import test module: my_app.tests.test_views.registration.test_login
Traceback (most recent call last):
File "/usr/lib/python2.7/unittest/loader.py", line 254, in _find_tests
module = self._get_module_from_name(name)
File "/usr/lib/python2.7/unittest/loader.py", line 232, in _get_module_from_name
__import__(name)
File "~/workspace/my_app/my_app/tests/test_views/registration/test_login.py", line 7, in <module>
from tests.tests_views.my_app_test.custom_test import CustomTest
ImportError: No module named tests_views.my_app_test.custom_test
任意のアイデア?
は 'CustomTest'のためのあなたのインポートパスにアプリケーション名を追加します。少なくともそれは私のために働く方法です。したがって: 'from my_app.tests.tests_views.my_app_test.custom_test import CustomTest' – elethan