1

django アプリのカスタム テスト ランナーを作成しています。djangoアプリフォルダーで、このようなフォルダーを取得しました私のパッケージのフォルダ構造

しかし、テストを実行しようとすると、エラーが発生しました:

ERROR: AdminLoginTest (unittest.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: AdminLoginTest
Traceback (most recent call last):
  File "D:\\python27\lib\unittest\loader.py", line 252, in _find_tests
    module = self._get_module_from_name(name)
  File "D:\\python27\lib\unittest\loader.py", line 230, in _get_module_f
rom_name
    __import__(name)
  File "D:\\selenium_tests\tests\admin_panel\AdminLoginTest.py",
line 1, in <module>
    from selenium_tests.SeleniumTestCase import SeleniumTestCase
ImportError: No module named selenium_tests.SeleniumTestCase

SeleniumTestCase では、次のようになりました。

class SeleniumTestCase(TestCase):
   body

ランナーではなく、パッケージに問題があると思います。事前に助けてくれてありがとう。

4

1 に答える 1

0

私が正しければ、スクリプトとして(単体テストを実行して)ファイルを実行するため、機能しませんAdminLoginTest.py。このスクリプトを実行すると、python インタープリターが のディレクトリに到達できませんselenium_tests

1 つの解決策は、相対インポートを使用することです。

from ..selenium_tests.SeleniumTestCase import SeleniumTestCase

AdminLoginTest.pyただし、ファイルをスクリプトとして実行しているため、これも機能しません。ファイルAdminLoginTest.pyがモジュールとしてインポートされる場合にのみ、相対インポートを使用できます。

unittests を最上位ディレクトリとし、他のすべてのクラスを下位ディレクトリとして、ディレクトリの構造を変更することをお勧めします。その後、インポートが機能します。

于 2012-10-15T00:45:15.767 に答える