Hallo Wie kann ich Testmethode dynamisch für eine Liste oder für die Anzahl der Dateien generieren. Angenommen, ich habe file1, file2 und filen mit dem Eingabewert in json. Jetzt muss ich wie unter den gleichen Test für mehrere Werte laufen,pytest dynamisch Testmethode generieren
class Test_File(unittest.TestCase):
def test_$FILE_NAME(self):
return_val = validate_data($FILE_NAME)
assert return_val
ich den folgenden Befehl bin mit dem py.test laufen html und junit Bericht
py.test test_rotate.py --tb=long --junit-xml=results.xml --html=results.html -vv
Derzeit zu generieren Ich bin manuell definieren die Methoden, wie unten,
def test_lease_file(self):
return_val = validate_data(lease_file)
assert return_val
def test_string_file(self):
return_val = validate_data(string_file)
assert return_val
def test_data_file(self):
return_val = validate_data(data_file)
assert return_val
Bitte lassen Sie mich wissen, wie ich py Test dynamisch angeben können test_came Methode zu erzeugen, während Berichte geben.
ich genau erwarte, die in diesem Blog erwähnt wird „http://eli.thegreenplace.net/2014/04/02/dynamically-generating-python-test-cases“
Aber oben Blog verwendet Unittest und wenn ich, dass ich nicht in der Lage bin html und junit Bericht
zu erzeugen, wenn wir Vorrichtungen verwenden, wie unter I wie sein erfordern 2 Parameter erhalten Fehler,
test_case = []
class Memory_utlization(unittest.TestCase):
@classmethod
def setup_class(cls):
fname = "test_order.txt"
with open(fname) as f:
content = f.readlines()
file_names = []
for i in content:
file_names.append(i.strip())
data = tuple(file_names)
test_case.append(data)
logging.info(test_case) # here test_case=[('dhcp_lease.json'),('dns_rpz.json'),]
@pytest.mark.parametrize("test_file",test_case)
def test_eval(self,test_file):
logging.info(test_case)
Wenn ich die oben ausführen ich die folgende Fehlermeldung erhalten,
> testMethod()
E TypeError: test_eval() takes exactly 2 arguments (1 given)
ich denke, das Ihnen helfen könnte? https://pytest.org/latest/parametrize.html – adarsh