Ich entwickle aktuell mehrere kleine Django-Apps. Jede dieser Apps wird mit tox und pytest getestet.
Dabei teste ich die jeweiligen Abhängigen der Apps mit, allerdings nicht nur in der aktuellsten Version, sondern in verschiedenen Versionen (wie Django 3.2, 4.0 und 4.1). Damit will ich Aussagen darüber treffen können, welche die niedrigste unterstützte Version des jeweiligen Paketes ist.
Hier mal ein Auszug aus meiner tox.ini:
Code: Alles auswählen
[tox]
envlist =
latest
py3{7,8,9,10,11}-django3.2-drf3.{11,12,13,14}-drfnestedrouters0.{90,91,92,93}
py3{7,8,9,10,11}-django3.2-drf3.{11,12,13,14}-guardian2.{2,3,4}
py3{7,8,9,10,11}-django3.2-drf3.{11,12,13,14}-djangocountries7.{1,2,3,4}
py3{7,8,9,10,11}-django3.2-drf3.{11,12,13,14}-djangophonenumberfield{5.0,5.1,5.2,6.0,6.1,6.2,6.3}
py3{7,8,9,10,11}-django3.2-dateutil2.{7,8}
py3{7,8,9,10,11}-django3.2-reversion{3.0,4.0,5.0}
tox bildet für jede Zeile Permutationen, sodass allein für die erste Zeile 80 Testdurchläufe durchgeführt werden. Das kostet Zeit, aber das ist mein geringstes Problem.
Für jeden Testdurchlauf wird ein Environment auf der Festplatte angelegt. Letzte Woche war ich an dem Punkt, dass eine App die 180 GB gesprengt hat. Damit habe ich die Grenze des Test-Servers ausgereizt.
Daher überlege ich gerade, wie ich am sinnvollsten die Anzahl der Environments reduziere. Daher würde mich mal interessieren, wie ihr eure Abhängigkeiten testet.
Würdet ihr nur mit Python 3.7 und 3.11 testen und davon ausgehen, dass dazwischen auch alles gehen muss? Das Gleiche mit z.B. djangorestframework in den Versionen 3.11 und 3.14?
Wie geht ihr da vor?