Ich versuche, meine Messaging-Antwort in einer meiner Bibliotheken zu testen.Testing ZMQ Steckdosen mit Unittest
import unittest
from time import sleep
import zmq
from vexbot.messaging import Messaging
class TestMessaging(unittest.TestCase):
def setUp(self):
self.subscribe_address = 'tcp://127.0.0.1:4006'
self.publish_address = 'tcp://127.0.0.1:4007'
self.settings = {'subscribe_address': self.subscribe_address,
'publish_address': self.publish_address}
context = zmq.Context()
self.messaging = Messaging(self.settings, context)
self.test_publish_socket = context.socket(zmq.PUB)
self.test_publish_socket.connect(self.publish_address)
self.test_subscribe_socket = context.socket(zmq.SUB)
self.test_subscribe_socket.connect(self.subscribe_address)
self.test_subscribe_socket.setsockopt_string(zmq.SUBSCRIBE, '')
sleep(1)
Mein Problem ist, dass, wenn ich Testverfahren in der obigen Klasse deklarieren, anstatt die setUp
Funktion einmal aufrufen und den Zustand einmal einstellen, versucht jeder Testmethode erinnert setUp
seinen eigenen Zustand zu setzen und die Adresse bereits wurde von der ersten Instanz geschnappt.
Wie erhalte ich rund um die Multi-Prozess-Probleme mit der Art und Weise unittest
arbeitet? Wäre es besser, zu Testzwecken eine zufällige Buchse aufzurufen?
Wenn Sie wollen, dass es nur einmal nannte es dann im Konstruktor setzt sonst der Zweck der setUp ist vor jedem Test auszuführen. – Dan
Haha, das macht viel mehr Sinn. Aber die Tests werden immer noch gleichzeitig ausgeführt, richtig? –
Ja, sie werden immer parallel laufen. – Dan