我使用easy_install在Mac上安装pytest,并开始为一个具有如下文件结构的项目编写测试:

repo/
   |--app.py
   |--settings.py
   |--models.py
   |--tests/
          |--test_app.py

py运行。在repo目录中进行测试,一切都如您所料。

但是当我在Linux或Windows上尝试同样的事情时(两者都有pytest 2.2.3),每当它第一次从我的应用程序路径导入某些东西时,它就会发出吠叫。例如,from app import some_def_in_app。

我需要编辑我的PATH来运行py。测试这些系统?


当前回答

我也遇到过类似的问题。pytest无法识别安装在我工作的环境中的模块。

我通过在相同的环境中安装pytest来解决这个问题。

其他回答

我开始得到奇怪的ConftestImportFailure: ImportError('没有模块命名…错误时,我不小心添加__init__.py文件到我的src目录(这不是一个Python包,只是一个容器的所有源代码)。

我也有同样的问题。我通过在我的测试目录中添加一个空的__init__.py文件来修复它。

由于无法导入模块,测试经常会中断。

经过研究,我发现系统在错误的地方查看文件,我们可以通过在相同的文件夹中复制包含模块的文件来轻松克服这个问题,以便正确导入。

另一个解决方案建议是更改导入的声明,并向MutPy显示单元的正确路径。然而,由于多个单元可能具有这种依赖关系,这意味着我们也需要在它们的声明中提交更改,因此我们更喜欢简单地将单元移动到文件夹中。

我得到这个错误由于一些更简单的(你甚至可以说微不足道)。我还没有安装pytest模块。所以一个简单的安装python-pytest为我解决了这个问题。

'pytest'将在setup.py中作为测试依赖项列出。确保您也安装了测试需求。

对我来说,问题是Django生成的tests.py和tests目录。删除tests.py就解决了这个问题。