Beim Laden aller Komponententests in einem Paket löst die make-Task einen java.lang.OutOfMemoryError: Java-Heapspeicherfehler aus.JUnit java.lang.OutOfMemoryError beim Ausführen aller Tests in einem Paket
Wenn ich alle Tests in jedem Unterpaket ausführen, laden und vervollständigen alle Tests jedoch einwandfrei. Nur wenn ich versuche, alle Tests im übergeordneten Paket auszuführen, tritt der OOM-Fehler auf.
Ich glaube nicht, dass dieses Problem gelöst werden sollte, indem VM-Parameter optimiert werden. Ich habe versucht, die maximale Heap- und Perm-Größe zu erhöhen, und es hat das Problem nicht gelöst.
Das führt mich zu der Annahme, dass es zwischen den Ladeversuchen in verschiedenen Paketen Probleme beim Sammeln von Daten gibt, oder dass ein zu eifriges Laden der Klassen stattfindet.
Gibt es eine JUnit-Einstellung, die diese Probleme beheben kann, oder muss das Problem durch Ändern oder Hinzufügen von Code in den Testfällen gelöst werden?
Sind Sie sicher, dass Sie keinen signifikanten Speicherverbrauch in der Statik Ihrer Testklassen oder in der Statik haben, die von Ihren Testklassen erreicht werden? – bmargulies
Wie haben Sie die VM-Parameter optimiert? Versuchen Sie zu bestätigen, dass sie von den Methoden in java.lang.Runtime richtig eingestellt wurden. – Bozho
Ich bin mir nicht sicher über den Speicherverbrauch der Statik, aber ich werde mich definitiv darum kümmern. Wie für die VM-Parameter habe ich versucht, diese: -Xmx512m -XX: PermSize = 128m -XX: MaxPermSize = 512m aber Erhöhung sie nicht helfen, den OOM-Fehler zu lösen. –