Gibt es einen Konsens über den besten Ort, um Python-Unittests zu platzieren?Sollten Python Unit Tests in einem separaten Modul sein?
Sollten die Komponententests innerhalb des gleichen Moduls enthalten sein wie die getestete Funktionalität (wird ausgeführt, wenn das Modul alleine ausgeführt wird (if __name__ == '__main__'
, usw.)), oder ist es besser, die Komponententests in verschiedene Module zu integrieren? Ist eine Kombination beider Ansätze am besten, einschließlich Modulebene-Tests innerhalb jedes Moduls und Hinzufügung von Tests auf höherer Ebene, die Funktionalität in mehr als einem Modul als separate Module testen (vielleicht in einem Unterverzeichnis/test?).
Ich gehe davon aus, dass die Testentdeckung einfacher ist, wenn die Tests in separaten Modulen enthalten sind, aber es gibt eine zusätzliche Belastung für den Entwickler, wenn er daran denken muss, das zusätzliche Testmodul zu aktualisieren, wenn das zu testende Modul geändert wird.
Ich wäre daran interessiert, die Gedanken der Menschen über die beste Art der Organisation von Unit Tests zu wissen.
Danke für diese umfassende Antwort. Ich mag Ihre Aussage über die Reduzierung des Rauschens im Implementierungscode. Ich mag auch Mikes Antwort über den Versuch, eine 1-zu-1-Beziehung zwischen Modulen und ihren Tests beizubehalten, wenn Tests in ein separates/tests-Unterverzeichnis aufgenommen werden. –
Ich bin hier wirklich pedantisch, aber Django (und wirklich alles, was diktiert wo du deine Tests ablegst) sollte wahrscheinlich als Framework und nicht als Bibliothek bezeichnet werden. – num1