我很高兴为我正在使用的 API 编写和测试模块,并使用以下命令:
python -m unittest myAPI.tests.APITests.test_mod_to_test
正如预期的那样,我的测试存在于tests.py
模块中myAPI
。这工作得很好,我发现我必须重构我的api.py
文件中包含我正在测试的函数的一些代码。我更改了需要更改的内容,然后返回命令行并通过按下键盘以保存输入来运行完全相同的命令。我收到了这个错误:
AttributeError: 'module' object has no attribute 'tests'
当我什至没有更改目录或tests.py
. 我没有移动文件或更改命令,我可以使用以下命令tests.py
在 python shell 中导入文件:
from myAPI import tests
在此之后我输入:
print tests
输出是预期的:
<module 'myAPI.tests' from '/path/to/myAPI/tests.pyc'>
我在 virtualenv 中使用 python 2.7 并没有真正安装它。该应用程序适用于 django 1.2.1 应用程序,但不相关,因为我在测试期间没有接触 django(除了它安装在我的环境中)。
这让我很难过,我想如果我不更改目录或 tests.py 中的一些内容,它是如何从工作良好变为不工作的。任何帮助都非常感谢。