我知道这个问题已经被问过很多次了,在过去的两个小时里一直在研究它,但仍然无法弄清楚。如果可能的话,将非常感谢解决我的实际问题,而不是链接到其他问题。
开始...
/src
/moduleA
__init__.py
messages.py
/tests
testA.py
Run Code Online (Sandbox Code Playgroud)
消息.py
def get_messages(paramA):
if paramA:
return "A"
else:
return "B"
Run Code Online (Sandbox Code Playgroud)
测试A.py
import unittest
from moduleA import messages
Run Code Online (Sandbox Code Playgroud)
我的单元测试将简单地检查函数是否返回A或。Bget_messages(...)
据我了解,它moduleA是一个模块,因为它有一个__init__.py文件。VSCode 不会抱怨from moduleA import messages我的测试中的行,但是当我尝试执行时,testA.py我收到以下错误消息...
ImportError: No module named moduleA。
还尝试运行它python -m
如果有人能告诉我我做错了什么,我将非常感激。如果有帮助的话,我可以改变我的文件结构。也许我一直在阅读的示例适用于 Python 3,而我正在使用 2.7?
谢谢。
以下是我关于如何处理此问题的建议:ValueError: Attempted dependent import in non-package not for tests package
因此,您需要将一个目录添加__init__.py到您的test目录中,备份一个目录然后 src运行python -m test.testA,然后您就可以开始了。
另外,一旦您看到它成功运行,您就会发现 中存在语法错误get_messages:您在 后面缺少一个冒号else。
| 归档时间: |
|
| 查看次数: |
8328 次 |
| 最近记录: |