我正在尝试在萝卜运行测试,这是一个针对Python的行为驱动开发环境,但是我甚至没能做最简单的事情。
我有这个结构:
.
├── features
│ └── my.feature
└── radish
├── __init__.py
├── harness
│ ├── __init__.py
│ └── main.py
└── steps.py
当我这样做时
python -c "import radish.harness"
来自我的工作目录“。”,事情很好。
当我在文件steps.py中执行相同操作(“import radish.harness”或“import harness”)时,我从同一目录中调用命令“萝卜功能”时得到此信息:
ModuleNotFoundError: No module named 'radish.harness'
或
ModuleNotFoundError: No module named 'harness'
radish-bdd快速入门指南quick start guide说明了这一点:
萝卜如何找到我的python模块?萝卜进口所有的蟒蛇 基于内部的模块。默认情况下,basedir指向 $ PWD /萝卜,在我们的情况下完全没问题。
确实会自动导入放置在萝卜目录中的文件,但我无法从这些文件中导入任何内容(除了系统库)。
有人可以告诉我如何导入模块吗?我迷路了。似乎我对模块导入的python知识没有帮助。
答案 0 :(得分:1)
我建议您将'harness'目录移动到与'features'和'radish'目录相同的级别。
.
├── features
│ └── my.feature
├── radish
│ ├── __init__.py
│ └── steps.py
└── harness
├── __init__.py
└── main.py
如果你从你的工作目录(“。”)打电话给萝卜:
radish -b radish features/my.feature
然后你可以从steps.py中导入你的“harness”模块,就像这样
import harness
这样可行,因为在这种情况下,Python会找到你当前目录中的“harness”模块。