本文介绍了如何动态更改pytest的tmpdir基目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据pytest documentation,可以覆盖默认临时目录设置,如下所示:

py.test --basetemp=/base_dir

如果随后在测试中使用tmpdir装置.

def test_new_base_dir(tmpdir):
    print str(tmpdir)
    assert False

..。然后,屏幕上将打印类似以下内容的内容:

/base_dir/test_new_base_dir_0

这可以按预期工作,并且对于某些用例可能非常有用。

但是,我希望能够在每个测试(或者我应该说"每个装置")的基础上更改此设置。这样的事情可能吗?

我几乎只是基于code for the original滚动我自己的tmpdir,但我不想这样做--我希望在我能做到的现有功能之上构建,而不是复制它。


顺便说一句,我的特定用例是我正在编写一个Python模块,该模块将作用于不同类型的文件系统(NFS4等),如果能够产生tmpdir的功能并能够创建以下装置,那就太好了:

def test_nfs3_stuff(nfs3_tmpdir):
    ... test NFS3 functionality

def test_nfs4_stuff(nfs4_tmpdir):
    ... test NFS4 functionality

推荐答案

问题中提出的问题似乎没有很好的解决方案,所以我决定对py.test进行两次调用:

  • 为每个传入不同的--basetemp
  • 使用@pytest.mark.my_mark标记哪些测试需要使用非标准基元的特殊处理。
  • 向每个调用传递-k my_mark-k-my_mark

这篇关于如何动态更改pytest的tmpdir基目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-09 15:59