Сбросить CollectorRegistry библиотеки Prometheus после каждого модульного тестаPython

Программы на Python
Ответить
Anonymous
 Сбросить CollectorRegistry библиотеки Prometheus после каждого модульного теста

Сообщение Anonymous »

У меня есть класс 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 и вижу способ отменить регистрацию сборщика, но это кажется немного некрасивым.

Интересно, есть ли другой способ решить эту проблему? Например, принудительное выполнение теста каждый раз в новой среде.

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/570 ... -unit-test
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»