【发布时间】:2019-07-18 13:43:35
【问题描述】:
我有一个 A 类,它在其 init
中初始化一个 Counterfrom prometheus_client import Counter
class A:
def __init__(self):
self.my_counter = Counter('an_awesome_counter')
def method_1(self):
return 1
def method_2(self):
return 2
然后我写测试类:
import unittest
import A
class ATests(unittest.TestCase):
def setUp(self):
self.a = A()
def tearDown(self):
self.a = None
def method_1_test(self):
....
def method_2_test(self):
....
问题是,如果我单独运行测试,它们就很好。然而,当我一起运行它们(运行整个 ATests 类)时,出现以下错误:
ValueError:CollectorRegistry 中的时间序列重复: {'an_awesome_counter'}
因此,每次测试运行后似乎都没有重置 python 环境。我检查了 CollectorRegistry 并且有一种取消注册收集器的方法,但这样做似乎有点难看。
我想知道是否有其他方法可以解决这个问题?例如,每次都强制测试在新环境下运行..
谢谢。
【问题讨论】:
-
在这个答案中找到了解决方案:stackoverflow.com/questions/62488819/…
标签: python unit-testing prometheus