1

我正在为 django 应用程序编写自定义测试运行程序。在 django app 文件夹中,我得到了像这样的文件夹我的包的文件夹结构

但是当我尝试运行测试时出现错误:

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.

一种解决方案是使用相对进口,即

from ..selenium_tests.SeleniumTestCase import SeleniumTestCase

但是,这也不起作用,因为您将文件AdminLoginTest.py作为脚本运行。只有当文件AdminLoginTest.py作为模块导入时,您才能使用相对导入。

我建议更改目录的结构,将单元测试作为顶级目录,将所有其他类作为较低级别的目录。然后导入将起作用。

于 2012-10-15T00:45:15.767 回答