繁体   English   中英

无法在Windows上导入conftest.py

[英]Cannot import conftest.py on Windows

一般来说,我对pytest和创建包(模块)都很陌生。 我用pytest编写了一些测试,直到我重构了脚本结构。 这实际上是必要的,因为有很多脚本,它的定位非常混乱。 当前目录结构看起来像这样:

C:\Users\local\workspace
         .+---tools
             +---base
                 +---__init__.py
                 +---conftest.py
                 +---script1.py
                 +---script2.py
             +---misc
                 +---__init__.py
                 +---run.py
             +---__init__.py

script1.pyscript2.py包含一些用于测试的类和特殊类。 我被告知conftest.py应该与顶级测试文件位于同一个文件夹中,所以我把它放到base目录中。

我通过以下方式从run.py运行pytest:

pytest_args = workspace + "/tools/base/script1.py "
pytest_args += workspace + "/tools/base/script2.py"
pytest.main(pytest_args)

其中workspace包含c:/Users/local/workspace 我收到此错误:

Traceback (most recent call last):
  File "c:\Python27\Lib\_pytest\config.py", line 543, in importconftest
    mod = conftestpath.pyimport()
  File "c:\Python27\Lib\py\_path\local.py", line 660, in pyimport
     raise self.ImportMismatchError(modname, modfile, self)
 ImportMismatchError: ('tools.base.conftest', 'c:/Users/local/workspace\\jenkins\\tools\\base\\conftest.py', local('c:\\Users\\wokspace\\tools\\base\\conftest.py'))
 ERROR: could not load c:\Users\local\workspace\tools\base\conftest.py

我真的不知道,如何解决这个问题。 当所有脚本都在同一个文件夹中(并且没有__init__.py )时,一切正常。 其他脚本工作正常(我的意思是依赖,其中一些脚本需要来自其他目录的模块),只是pytest失败了。

奇怪的是,在Linux发行版上,这很好用。 我猜Windows路径存在问题,这似乎是pytest的一个真正问题。 你有任何想法如何解决这个问题吗?

谢谢

我遇到了类似的问题,最终修复它的是删除我所有的__pycache__目录和.pyc文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM