Erprobung
Einleitung
Der Arbeitsbereich Erprobung ist nicht wirklich ein Modellierungsarbeitsbereich, aber er enthält einen Satz von Python Skripten, zum Durchzuführen verschiedener Tests an den Kernkomponenten von FreeCAD, um Probleme zu beheben. Siehe auch Fehlerdiagnose.
Du kannst die Tests auf der Kommandozeile ausführen, indem du die Optionen -t oder --run-test verwendest.
Führe alle Tests durch:
freecad --run-test 0
Führe nur einige der angegebenen Komponententests aus, zum Beispiel:
freecad -t TestDraft
Wenn ein Test die Benutzerschnittstelle (GUI) nicht braucht, kann er auch im Konsolenmodus gestartet werden durch das zusätzliche Setzen der Option -c oder --console. Daraus resultiert eine erheblich kürzere Startzeit, da die GUI nicht geladen wird. Zum Beispiel:
freecad -c -t TestPartDesignApp
Von den Test-Prozeduren erzeugte Dateien (z. B. Eingabedateien von TestFemApp werden im FEM_unittests-Ordner gespeichert) werden im von FreeCAD genutzten temp-Verzeichnis gespeichert, dass mit dem folgenden Befehl der Python-Konsole gefunden werden kann:
App.getTempPath()
Sie könnten fürs Debuggen nützlich sein.
Testmenü
Jedes oberste Verzeichnis in FreeCAD sollte eine Datei mit den Tests haben, die für diesen speziellen Arbeitsbereich oder dieses Modul ausgeführt werden können. Die Datei beginnt normalerweise mit dem Wort Test.
Um einen Test aus FreeCAD heraus auszuführen, wechsle in den Arbeitsbereich Test, dann Testbefehle → TestWerkzeugeGui → Selbsttest → Wähle Testbezeichnung, gib dann den Namen der Python-Datei mit den Tests ein; z. B. für die Arbeitsbereich Draft wäre dies TestEntwurf, dann drücke Start.
Testfunktionen
Dies ist die Liste der Testanwendungen ab 0.15 git 4207:
TestAPP.All
Testfunktion hinzufügen
Basistests
Testfunktion hinzufügen
EinheitTests
Testfunktion hinzufügen
Dokument
Testfunktion hinzufügen
UnicodeTests
Testfunktion hinzufügen
MeshTestsApp
Testfunktion hinzufügen
TestDraft
Testfunktion hinzufügen
TestSketcherApp
Testfunktion hinzufügen
TestPartApp
Testfunktion hinzufügen
TestPartDesignApp
Testfunktion hinzufügen
TestCAMApp
Arbeitsbereich Path-Testfälle:
- depthTestCases:
- PathTestUtils:
- TestDressupDogbone: Test der Funktionalität von Dogbone Dressup.
- TestHoldingTags: Test der Funktionalität von Holding Tags Dressup.
- TestPathAdaptive: Testauswahlfähigkeit von Adaptiven Operationen.
- TestPathCore: Testet die Kernfunktionalität des Arbeitsbereich Path.
- TestPathDeburr: Allgemeine Funktionalität des Entgratvorgangs testen.
- TestPathGeom: Testet verschiedene Funktionen, die im PathGeom-Modul verfügbar sind.
- TestPathHelix: Testet die allgemeine Funktionalität von Helix-Operationen.
- TestPathLog: Testet verschiedene Funktionen, die im PathLog debugging und feedback-Modul vorhanden sind.
- TestPathOpTools:
- TestPathPreferences: Test various functions available in the PathPreferences module.
- TestPathPropertyBag:
- TestPathSetupSheet:
- TestPathStock:
- TestPathThreadMilling:
- TestPathTool:
- TestPathToolBit:
- TestPathToolController:
- TestPathTooltable:
- TestPathUtil: Testet verschiedene Funktionen, die im PathUtil-Modul verfügbar sind.
- TestPathVcarve: Testet die allgemeine Funktionalität von Vcarve-Operationen.
- TestPathVoronoi:
Arbeitsbereich
Testfunktion hinzufügen
Menü
Testfunktion hinzufügen
Menu.MenuDeleteCases
Testfunktion hinzufügen
Menu.MenuCreateCases
Testfunktion hinzufügen
Skripten
Siehe auch: Grundlagen der Skripterstellung in FreeCAD.
Eine Liste aller Top-Level-Test-Module erhalten
FreeCAD.__unit_test__
Beachte, dass die Test-Module hier zurückgeben, ob sie von der GUI abhängig sind, oder nicht. Wenn sie bspw. im Konsolen-Modus ausgeführt werden, enden verschiedene Tests mit der Meldung "Gui are missing".
Spezifische Tests ausführen
Es gibt verschiede Wege Tests mit Pythons Unit-Test-Bibliothek auszuführen. FreeCADs Test-Framework entfernt einige der Boiler-Plate-Test für die Standardfälle.
Alle Tests in einem bestimmten Python-Module ausführen:
import Test, TestFemApp
Test.runTestsFromModule(TestFemApp)
Alle Tests in einer bestimmten Python-Klasse ausführen:
import Test, femtest.app.test_solver_calculix
Test.runTestsFromClass(femtest.app.test_solver_calculix.TestSolverCalculix)
Beispiel 1
Innerhalb der Python-Konsole von FreeCAD kann das folgende Code-Format benutzt werden, um eingebaute Tests auszuführen. Den roten Text "TestFem" im folgenden Code mit dem gewünschten Namen des Modultests ersetzen.
- Beispielsweise "TestPathApp" einsetzen, um alle Einheitentests des Unit-Test-Frameworks für den Arbeitsbereich Path auszuführen.
- Untermodule stehen über die Punktnotation zur Verfügung, wie "TestPathApp.TestPathAdaptive", um nur die adaptiven Einheitentests innerhalb des größeren Test-Frameworks für den Arbeitsbereich Path auszuführen.
- Mehrere Testmodule oder Untermodule können kombiniert werden, indem ein weiterer Methoden-Aufruf `suite.addTest(...)`,hinzugefügt wird, genau wie der im folgenden Code, aber mit einer anderen Modul- oder Untermodul-Referenz.
- Die Ausgaben des folgenden Codes werden im Ausgabefenster innerhalb der FreeCAD-GUI angezeigt.
- Die Code-Grundlage wurde aus dem Beitrag des FreeCAD-Forum-Benutzers sgrogan im Thema unit tests per python kopiert, wo Forum-Benutzer wmayer als Urheber genannt wird.
import unittest
suite = unittest.TestSuite()
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestFem"))
r = unittest.TextTestRunner()
r.run(suite)
Zusätzliche Quellen
Forum-Themen
- Support for running specific unit tests with --run-test #331 (Unterstützung für die Ausführung bestimmter Einheitentests mit --run-test #331)
- Erste Schritte
- Installation: Herunterladen, Windows, Linux, Mac, Zusätzliche Komponenten, Docker, AppImage, Ubuntu Snap
- Grundlagen: Über FreeCAD, Graphische Oberfläche, Mausbedienung, Auswahlmethoden, Objektname, Voreinstellungseditor, Arbeitsbereiche, Dokumentstruktur, Objekteigenschaften, FreeCAD unterstützen, Spenden
- Hilfe: Anleitungen, Videoanleitungen
- Arbeitsbereiche: Std Base, Arch, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework