Python 每次单元测试后重置Prometheus lib的CollectorRegistry

Python 每次单元测试后重置Prometheus lib的CollectorRegistry,python,unit-testing,prometheus,Python,Unit Testing,Prometheus,我有一个类a,它在其init中初始化计数器 from 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 u

我有一个类a,它在其init中初始化计数器

from 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,有一种方法可以注销collector,但这样做似乎有点难看

我想知道有没有别的办法解决这个问题?例如,每次强制使用新环境运行测试


谢谢。

目前,我将
a=a()
移出设置(self)并将其转换为类变量作为解决方案

通常度量应该是模块级变量,以避免此类问题。能否编辑您的问题,以便添加最终有效的代码?