gpt4 book ai didi

python - 获取 Python 的 nosetests 导致 tearDown() 方法

转载 作者:太空狗 更新时间:2023-10-29 19:26:50 30 4
gpt4 key购买 nike

我希望能够获得特定测试方法的结果,并在使用 nose 测试运行器时将其输出到拆解方法中。有一个很好的例子here .

但不幸的是,运行 nosetests example.py 不起作用,因为 nose 似乎不喜欢父类(super class)中的 run 方法被重写的事实:

AttributeError: 'ResultProxy' object has no attribute 'wasSuccessful'

最佳答案

警告:在拆解期间,以下内容实际上并未访问测试,但它确实访问了每个结果。

您可能想要编写一个 Nose 插件 ( see the API documentation here )。您可能感兴趣的方法是 afterTest(),它在测试后运行...。 :) 不过,根据您的具体应用,handleError()/handleFailure()finalize() 实际上可能更有用。

这是一个示例插件,它在测试执行后立即访问测试结果。

from nose.plugins import Plugin
import logging
log = logging.getLogger('nose.plugins.testnamer')

class ReportResults(Plugin):
def __init__(self, *args, **kwargs):
super(ReportResults, self).__init__(*args, **kwargs)
self.passes = 0
self.failures = 0
def afterTest(self, test):
if test.passed:
self.passes += 1
else:
self.failures += 1
def finalize(self, result):
print "%d successes, %d failures" % (self.passes, self.failures)

这个简单的示例仅报告通过和失败的次数(就像您包含的链接,但我相信您可以扩展它来做一些更有趣的事情(here's another fun idea)。要使用它,请确保它是安装在 Nose 中(或将其加载到自定义运行器中),然后使用 --with-reportresults 激活它。

关于python - 获取 Python 的 nosetests 导致 tearDown() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980375/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com