Testen
Mit der Methode get_test_data können Sie Testdaten für Verarbeitungsmodule bereitstellen. Wenn Testdaten angegeben werden, wird das Verarbeitungsmodul automatisch getestet, wenn das Test-Framework ausgeführt wird.
Jedes Testobjekt (ein Dictionary) besteht aus den Einträgen module_config
, input_data
und den erwarteten output_data
.
Während der Testausführung wird das Verarbeitungsmodul mit der angegebenen module_config
instanziiert und gestartet. Anschließend wird die _run
-Methode mit den angegebenen input_data
aufgerufen. Das von der _run
-Methode zurückgegebene Datenobjekt wird mit den erwarteten output_data
verglichen. Wenn die Datenobjekte abweichen, wird ein Fehler ausgelöst. Nachdem das Verarbeitungsmodul ausgeführt wurde, wird es gestoppt.
Beispiel
@classmethod
def get_test_data(cls) -> list[dict]:
test_1 = {"module_config": cls.Configuration(module_name=os.path.splitext(os.path.basename(__file__))[0],
field_key="test3",
field_value="*"),
"input_data": models.Data(measurement="test",
fields={"test3": 1, "test4": 1.234},
tags={"test1": 1, "test2": 2}),
"output_data": models.Data(measurement="test",
fields={"test3": 1},
tags={"test1": 1, "test2": 2})}
test_2 = {"module_config": cls.Configuration(module_name=os.path.splitext(os.path.basename(__file__))[0],
field_key="test3",
field_value="1"),
"input_data": models.Data(measurement="test",
fields={"test3": 1, "test4": 1.234},
tags={"test1": 1, "test2": 2}),
"output_data": models.Data(measurement="test",
fields={"test3": 1},
tags={"test1": 1, "test2": 2})}
return [test_1, test_2]
Tests ausführen
-
Um die Tests auszuführen, wechseln Sie in das Testverzeichnis mit:
cd src/test
-
Führen Sie die Tests aus durch:
python src/test/test.py
Introduction
Template