Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pytest:在每次looponfail运行时写入时间戳_Python_Pytest - Fatal编程技术网

Python pytest:在每次looponfail运行时写入时间戳

Python pytest:在每次looponfail运行时写入时间戳,python,pytest,Python,Pytest,我使用pytest上的-f(-looponfail)选项在重构时连续运行单元测试套件。这真是太棒了 问题是,我无法通过查看上一次测试运行的时间来判断,这将有助于了解我何时将终端屏幕隐藏了一段时间,并可能对依赖项进行了一些更改 如何让它在每次测试运行时打印日期/时间戳 为此,我也使用了entr,在pytest命令前面添加了一个date命令,但是在looponfail选项上没有接缝可以添加类似的内容。与更复杂的entr命令相比,pytest-f命令要短得多,也更容易正确执行,因此我想问问是否有人找到

我使用
pytest
上的
-f
(-looponfail)选项在重构时连续运行单元测试套件。这真是太棒了

问题是,我无法通过查看上一次测试运行的时间来判断,这将有助于了解我何时将终端屏幕隐藏了一段时间,并可能对依赖项进行了一些更改

如何让它在每次测试运行时打印日期/时间戳


为此,我也使用了
entr
,在
pytest
命令前面添加了一个date命令,但是在looponfail选项上没有接缝可以添加类似的内容。与更复杂的
entr
命令相比,
pytest-f
命令要短得多,也更容易正确执行,因此我想问问是否有人找到了解决方法。

正如hoefling上面提到的,这可以使用pytest挂钩完成。在这种情况下,将以下内容放入项目目录中的
conftest.py

from datetime import datetime

def pytest_unconfigure(config):
    # ---called after test run, just before exiting---
    print("Last run: %s" % datetime.now().strftime("%b %d %H:%M"))

您应该修改记录器:@PMende,除非我遗漏了什么,它只控制捕获的日志消息的显示,如
logger.warn(“foo”)
,而不添加测试运行的“日志”。它肯定不会在我的安装上写任何东西。你希望打印日期的具体方式和时间?有很多方法可以添加自定义输出;查看示例。例如,通过
pytest\u terminal\u summary
hook:
def pytest\u terminal\u summary(terminalreporter,exitstatus,config):terminalreporter.write\u sep('=',datetime.datetime.today().strftime('%d-%b-%Y%H:%M:%S'),yellow=True,bold=True)
Ah,@hoefling,我对此感觉很好,钩子正是我一直在寻找但没有找到的东西:)-f选项反复运行测试,所以我认为
取消配置钩子应该可以工作,但即使不行,我也很确定我能找到一个可以工作的钩子。我将根据您的其他答案尝试一些,并向您汇报:)很高兴我能提供帮助!:-)