Python 为什么赢了';t unittest找到我的测试。py?
我很高兴地为我正在使用的API编写和测试模块,并使用以下命令:Python 为什么赢了';t unittest找到我的测试。py?,python,unit-testing,Python,Unit Testing,我很高兴地为我正在使用的API编写和测试模块,并使用以下命令: python -m unittest myAPI.tests.APITests.test_mod_to_test 正如预期的那样,我的测试位于模块myAPI中的tests.py中。这工作得很好,我发现我必须在保存我正在测试的函数的api.py文件中重构一些代码。我更改了需要更改的内容,然后返回到命令行,通过向上按键盘来保存键入,运行完全相同的命令。我得到了这个错误: AttributeError: 'module' object
python -m unittest myAPI.tests.APITests.test_mod_to_test
正如预期的那样,我的测试位于模块myAPI
中的tests.py
中。这工作得很好,我发现我必须在保存我正在测试的函数的api.py
文件中重构一些代码。我更改了需要更改的内容,然后返回到命令行,通过向上按键盘来保存键入,运行完全相同的命令。我得到了这个错误:
AttributeError: 'module' object has no attribute 'tests'
当我甚至没有更改目录中的任何内容或tests.py
时。我没有移动文件或更改命令,我可以使用以下方法在python shell中导入tests.py
文件:
from myAPI import tests
在此之后,我进入:
print tests
输出是预期的:
<module 'myAPI.tests' from '/path/to/myAPI/tests.pyc'>
我在virtualenv中使用Python2.7,但实际上没有安装任何东西。该应用程序适用于django 1.2.1应用程序,但与此无关,因为我在测试期间没有接触django(安装在我的环境中的除外)
这让我很困惑,我想如果我不更改目录或tests.py中的一些内容,它是如何从工作状态变为不工作的。任何帮助都是非常感谢的。我可以为这个错误提出两个可能的原因,但是没有更多的信息就无法知道
\uuuu init\uuuuuuuuuuupy
文件。因此,您需要确保从包含myAPI测试的目录运行该调用\uuu init\uu.py
文件。创建新目录时,很容易忘记放入一个目录。没有它,您将无法从目录中导入任何内容