Testing/de: Difference between revisions

From FreeCAD Documentation
(Created page with "Testfunktion hinzufügen")
No edit summary
 
(38 intermediate revisions by 4 users not shown)
Line 10: Line 10:
{{TOCright}}
{{TOCright}}


<span id="Introduction"></span>
== Einführung ==
== Einführung ==


Die [[Test Framework Workbench/de|Erprobung]] ist nicht wirklich eine Modellierungsarbeitsbereich, aber sie enthält einen Satz von [[Python/de|Python]] Skripten, um verschiedene Tests an den Kernkomponenten von FreeCAD durchzuführen, um Probleme zu beheben. Siehe auch [[Debugging/de|Fehlerdiagnose]].
Der Arbeitsbereich [[Testing/de|Erprobung]] ist nicht wirklich ein Modellierungsarbeitsbereich, aber er enthält einen Satz von [[Python/de|Python]] Skripten, zum Durchzuführen verschiedener Tests an den Kernkomponenten von FreeCAD, um Probleme zu beheben. Siehe auch [[Debugging/de|Fehlerdiagnose]].


Du kannst die Tests auf der Kommandozeile ausführen, indem du die Optionen {{incode|-t}} oder {{incode|--run-test}} verwendest.
Du kannst die Tests auf der Kommandozeile ausführen, indem du die Optionen {{incode|-t}} oder {{incode|--run-test}} verwendest.
Line 28: Line 29:
}}
}}


Wenn ein Test die Benutzerschnittstelle (GUI) nicht braucht, kann er auch im Konsolenmodus gestartet werden durch das zusätzliche Setzen der Option {{incode|-c}} oder {{incode|--console}}. Daraus resultiert eine erheblich kürzere Startzeit, da die GUI nicht geladen wird. Z.B.:

{{Code|code=
freecad -c -t TestPartDesignApp
}}

<span id="Test_menu"></span>
== Testmenü ==
== 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 {{incode|Test}}.
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 {{incode|Test}}.


Um einen Test aus FreeCAD heraus auszuführen, wechsle in den Test Arbeitsbereich, dann {{MenuCommand/de|Testbefehle → TestWerkzeugeGui → Selbsttest → Wähle Testbezeichnung}}, gib dann den Namen der Python Datei mit den Tests ein; z.B. für die [[Draft Workbench/de|Draft Arbeitsbereich]] wäre dies {{MenuCommand/de|TestEntwurf}}, dann drücke {{Button|Start}}.
Um einen Test aus FreeCAD heraus auszuführen, wechsle in den Test Arbeitsbereich, dann {{MenuCommand|Testbefehle → TestWerkzeugeGui → Selbsttest → Wähle Testbezeichnung}}, gib dann den Namen der Python Datei mit den Tests ein; z.B. für die [[Draft Workbench/de|Draft Arbeitsbereich]] wäre dies {{MenuCommand|TestEntwurf}}, dann drücke {{Button|Start}}.


<span id="Test_functions"></span>
==Testfunktionen==
==Testfunktionen==


Line 42: Line 51:
Testfunktion hinzufügen
Testfunktion hinzufügen


<span id="BaseTests"></span>
=== Basistests ===
=== Basistests ===


Testfunktion hinzufügen
Testfunktion hinzufügen


<span id="UnitTests"></span>
<div class="mw-translate-fuzzy">
=== EinheitTests ===
=== EinheitTests ===
Testfunktion hinzufügen
</div>


Testfunktion hinzufügen
Testfunktion hinzufügen


<span id="Document"></span>
<div class="mw-translate-fuzzy">
=== Dokument ===
=== Dokument ===
Testfunktion hinzufügen
</div>


Testfunktion hinzufügen
Testfunktion hinzufügen


<div class="mw-translate-fuzzy">
=== UnicodeTests ===
=== UnicodeTests ===
Testfunktion hinzufügen
</div>


Testfunktion hinzufügen
Testfunktion hinzufügen


<div class="mw-translate-fuzzy">
=== MeshTestsApp ===
=== MeshTestsApp ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


Add test function

<div class="mw-translate-fuzzy">
=== TestDraft ===
=== TestDraft ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


Add test function

<div class="mw-translate-fuzzy">
=== TestSketcherApp ===
=== TestSketcherApp ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


Add test function

<div class="mw-translate-fuzzy">
=== TestPartApp ===
=== TestPartApp ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


=== TestPartDesignApp ===
Add test function


<div class="mw-translate-fuzzy">
=== TestPartDesignApp ===
Testfunktion hinzufügen
Testfunktion hinzufügen
</div>

Add test function


<span id="TestCAMApp"></span>
=== TestPathApp ===
===TestCAMApp===


Path workbench test cases:
Path workbench test cases:
Line 127: Line 116:
* TestPathUtil: Test various functions available in the PathUtil module.
* TestPathUtil: Test various functions available in the PathUtil module.
* TestPathVcarve: Test general functionality of Vcarve operation.
* TestPathVcarve: Test general functionality of Vcarve operation.
* TestPathVoronoi:
* TestPathVoronoi:


<span id="Workbench"></span>
<div class="mw-translate-fuzzy">
=== Arbeitsbereich ===
=== Arbeitsbereich ===
Testfunktion hinzufügen
</div>


Testfunktion hinzufügen
Add test function


<span id="Menu"></span>
<div class="mw-translate-fuzzy">
=== Menü ===
=== Menü ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


Add test function

<div class="mw-translate-fuzzy">
=== Menu.MenuDeleteCases ===
=== Menu.MenuDeleteCases ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


Add test function

<div class="mw-translate-fuzzy">
=== Menu.MenuCreateCases ===
=== Menu.MenuCreateCases ===

Testfunktion hinzufügen
Testfunktion hinzufügen
</div>


<span id="Scripting"></span>
Add test function
==Skripten==


{{Emphasis|Siehe auch:}} [[FreeCAD_Scripting_Basics/de|FreeCAD Grundlagen Skripten]].
==Scripting==

===Get a list of all top-level test modules===

{{Code|code=
FreeCAD.__unit_test__
}}

Note that the test modules returned here depend on whether a GUI available or not. I.e. when executed in console mode, various tests ending in "Gui" are missing.

===Run specific tests===

There are various ways of running tests using [https://docs.python.org/3/library/unittest.html Python's unittest library]. FreeCAD's test framework removes some of the boiler plate for the most common cases.

Run all tests defined in a Python module:
{{Code|code=
import Test, TestFemApp
Test.runTestsFromModule(TestFemApp)
}}

Run all tests defined in a Python class:
{{Code|code=
import Test, femtest.app.test_solver_calculix
Test.runTestsFromClass(femtest.app.test_solver_calculix.TestSolverCalculix)
}}


<span id="Example_1"></span>
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].
===Beispiel 1===


Innerhalb der Python-Konsole von FreeCAD kann das folgende Code-Format benutzt werden, um eingebaute Tests auszuführen. Ersetze den roten "'''TestFem'''"-Text im folgenden Code mit dem gewünschten Namen des Testmoduls.
===Example 1===
* Benutze bspw. "'''TestPathApp'''", um alle Einheitentests für das Path-Arbeitsgebiet Einheitentest-Gerüst auszuführen.


* Untermodule sind über die Punktnotation verfügbar, wie "'''TestPathApp.TestPathAdaptive'''", um nur die adaptiven Einheitentestd innerhalb des größeren Path-Arbeitsgebiets-Test-Gerüsts auszuführen.
Within the Python Console of FreeCAD, the following code format may be used to run built-in tests. Replace the red "'''TestFem'''" text in the code below with the desired module test name.
* Mehrere Testmodule oder Untermodule können kombiniert werden durch hinzufügen eines weiteren `'''suite.addTest(...)'''`-Methoden-Aufrufs genau wie der im folgenden Code, aber mit einer anderen Modul- oder Untermodul-Referenz.
* For example, use "'''TestPathApp'''" to run all unit tests for the Path workbench unit test framework.
* Die Ausgaben des folgenden Codes werden im Reportansichts-Paneel innerhalb der FreeCAD-GUI angezeigt.
* Submodules are available using dot notation, like "'''TestPathApp.TestPathAdaptive'''" to only run the Adaptive unit tests within the greater Path workbench test framework.
* Der Quell-Code wurde aus dem Beitrag des FreeCAD-Forum-Benutzers ''sgrogan'' kopiert, im [https://forum.freecadweb.org/viewtopic.php?style=3&p=153251#p153251 unit tests per python]-Thema, mit dortiger Nennung von Forum-Benutzer ''wmayer''.
* Multiple test modules or submodules may be combined by adding another `'''suite.addTest(...)'''` method call just like the one in the code below, but with a different module or submodule reference.
* Output for the code below will be in the Report View panel within the FreeCAD GUI.
* Code source is copied from post by FreeCAD forum user, ''sgrogan'', in the [https://forum.freecadweb.org/viewtopic.php?style=3&p=153251#p153251 unit tests per python] topic, with credit there given to forum user, ''wmayer''.


{{Code|code=
{{Code|code=
Line 178: Line 184:
}}
}}


<span id="Additional_Resources"></span>
==Additional Resources==
== Zusätzliche Quellen ==


<span id="Forum_Topics"></span>
===Forum Topics===
===Forum-Themen===


* [https://forum.freecadweb.org/viewtopic.php?style=3&f=27&t=18379 Support for running specific unit tests with --run-test #331]
* [https://forum.freecadweb.org/viewtopic.php?style=3&f=27&t=18379 Support for running specific unit tests with --run-test #331] (Unterstützung für die Ausführung bestimmter Einheitentests mit --run-test #331)





Latest revision as of 10:47, 23 April 2024

Erprobung Arbeitsbereichssymbol

Einführung

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 einen Teil des angegebenen Komponententests aus, z.B.:

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. Z.B.:

freecad -c -t TestPartDesignApp

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 Test Arbeitsbereich, dann Testbefehle → TestWerkzeugeGui → Selbsttest → Wähle Testbezeichnung, gib dann den Namen der Python Datei mit den Tests ein; z.B. für die Draft Arbeitsbereich 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

Path workbench test cases:

  • depthTestCases:
  • PathTestUtils:
  • TestDressupDogbone: Test functionality of Dogbone dressup.
  • TestHoldingTags: Test functionality of Holding Tags dressup.
  • TestPathAdaptive: Test selection capability of Adaptive operation.
  • TestPathCore: Test core functionality of Path workbench.
  • TestPathDeburr: Test general functionality of Deburr operation.
  • TestPathGeom: Test various functions available in the PathGeom module.
  • TestPathHelix: Test general functionality of Helix operation.
  • TestPathLog: Test various functions available in the PathLog debugging and feedback module.
  • TestPathOpTools:
  • TestPathPreferences: Test various functions available in the PathPreferences module.
  • TestPathPropertyBag:
  • TestPathSetupSheet:
  • TestPathStock:
  • TestPathThreadMilling:
  • TestPathTool:
  • TestPathToolBit:
  • TestPathToolController:
  • TestPathTooltable:
  • TestPathUtil: Test various functions available in the PathUtil module.
  • TestPathVcarve: Test general functionality of Vcarve operation.
  • TestPathVoronoi:

Arbeitsbereich

Testfunktion hinzufügen

Menü

Testfunktion hinzufügen

Menu.MenuDeleteCases

Testfunktion hinzufügen

Menu.MenuCreateCases

Testfunktion hinzufügen

Skripten

Siehe auch: FreeCAD Grundlagen Skripten.

Get a list of all top-level test modules

FreeCAD.__unit_test__

Note that the test modules returned here depend on whether a GUI available or not. I.e. when executed in console mode, various tests ending in "Gui" are missing.

Run specific tests

There are various ways of running tests using Python's unittest library. FreeCAD's test framework removes some of the boiler plate for the most common cases.

Run all tests defined in a Python module:

import Test, TestFemApp
Test.runTestsFromModule(TestFemApp)

Run all tests defined in a Python class:

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. Ersetze den roten "TestFem"-Text im folgenden Code mit dem gewünschten Namen des Testmoduls.

  • Benutze bspw. "TestPathApp", um alle Einheitentests für das Path-Arbeitsgebiet Einheitentest-Gerüst auszuführen.
  • Untermodule sind über die Punktnotation verfügbar, wie "TestPathApp.TestPathAdaptive", um nur die adaptiven Einheitentestd innerhalb des größeren Path-Arbeitsgebiets-Test-Gerüsts auszuführen.
  • Mehrere Testmodule oder Untermodule können kombiniert werden durch hinzufügen eines weiteren `suite.addTest(...)`-Methoden-Aufrufs genau wie der im folgenden Code, aber mit einer anderen Modul- oder Untermodul-Referenz.
  • Die Ausgaben des folgenden Codes werden im Reportansichts-Paneel innerhalb der FreeCAD-GUI angezeigt.
  • Der Quell-Code wurde aus dem Beitrag des FreeCAD-Forum-Benutzers sgrogan kopiert, im unit tests per python-Thema, mit dortiger Nennung von Forum-Benutzer wmayer.
import unittest
suite = unittest.TestSuite()
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestFem"))
r = unittest.TextTestRunner()
r.run(suite)

Zusätzliche Quellen

Forum-Themen