![]() |
Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Open Component Test Framework (OpenCTF)
Ein open source Projekt zur automatischen Erstellung von Tests für alle Komponenten in VCL Formularen, Frames und Datenmodulen für Delphi 2009 und neuer. OpenCTF kann bei großen Projekten, in denen viele VCL Komponenten eingesetzt werden, durch regelmäßige Tests eine sehr große Zeiteinsparung erreichen. Es erfordert kein Scripting der Tests, sondern verwendet (erweiterbare) Regeln, die einmal definiert und auf alle passenden Komponenten angewandt werden. OpenCTF nutzt das DUnit Framework als Basis. Projekt bei Sourceforge (mit Screenshot): ![]() Screenshots: ![]() API Dokumentation: ![]() Getting Started - Englisch: ![]() Einstieg - Deutsch: ![]() Wie arbeitet OpenCTF? OpenCTF kennt nach der Initialisierung im Prinzip nur zwei einfache Dinge (zwei Objektlisten): * die Liste der zu untersuchenden Formulare * die Liste der durchzuführenden Tests OpenCTF durchläuft nacheinander alle Komponenten der angegebenen Formulare, und prüft dabei, ob für die Klasse der Komponente (oder eine Vorfahrklasse) ein Test hinterlegt ist. Falls die Komponente diesen 'Aufnahmetest' besteht, wird dynamisch ein Testfall für das DUnit-Framework erzeugt und der Testsuite hinzugefügt. (Jeder Testfall enthält auch eine Objektreferenz auf die von ihm zu testende Komponente.) Nachdem alle Testfälle feststehen, kann mit der DUnit-Standardmethode 'RunRegisteredTests' der eigentliche Testlauf gestartet werden. Da jeder Testfall die von ihm zu testende Komponente bereits 'kennt', ist in dieser Phase keine besondere Leistung des OpenCTF mehr erforderlich. OpenCTF erleichtert die Testerstellung aber auch durch Methoden, die ein Testprojekt mit wenig Zeilen Code ermöglichen. Beispiel:
Delphi-Quellcode:
Eine neue Version (1.5.0) ist aktuell in Entwicklung und bereits im Subversion Repository verfügbar (im Bereich branches).
program Project1;
uses OpenCTF, OpenCTFRunner, // die Basis des Frameworks ctfTestDB, // eine Sammlung von Tests für DB - Komponenten TestDataModule in 'TestDataModule.pas' {DataModule1: TDataModule}, TestDataModule2 in 'TestDataModule2.pas' {DataModule2: TDataModule}, TestForm in 'TestForm.pas' {Form1}, TestForm2 in 'TestForm2.pas' {Form2}; begin // Register Form classes OpenCTF.RegisterFormClasses([TDataModule1, TDataModule2, TForm1, TForm2]); // run the tests OpenCTFRunner.Run; end. Highlights: * komplett neues, flexibleres Basisframework * Testergebnisse werden "verdichtet" (weniger Zweige im DUnit GUI Testrunner), um die DUnit Darstellung bei großen Projekten übersichtlicher zu machen * Tests können wahlweise nach Forms oder nach Testklassen gruppiert werden, Teil-Testläufe werden dadurch flexibler und schneller |
AW: Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Mir erschließt sich der Nutzen und Einsatzzweck irgendwie noch nicht.
Bei einem Unittest teste ich in aller Regel - wie der Name schon sagt - eine Unit (bzw die enthaltenen Klassen und Routinen) soweit es geht in Isolation (oft unter Zuhilfenahme von ![]() Speziell bei Forms und anderen GUI Elementen stelle ich mir das etwas schwer vor, denn diese sind entweder komplett von der BI getrennt (was bei Delphi Entwicklern erfahrungsgemäß durch den RAD Ansatz nicht so verbreitet ist), was das Testen obsolet macht, oder sie sind dermaßen von anderen Teilen der Applikation abhängig, dass sich ein isoliertes Testen nahezu unmöglich gestaltet. |
AW: Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Zitat:
Der Vorteil von OpenCTF liegt darin, dass man sich gegen einige häufig auftretende Fehler beim Bearbeiten von Delphi Formularen absichern kann. Nicht zugewiesene / versehentlich gelöschte Event-Handler zum Beispiel. ... Falls so etwas beim Einchecken in der Versionsverwaltung nicht erkannt wird, meldet OpenCTF es sofort beim nächsten Build/Test Lauf auf dem CI Server. |
AW: Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Zitat:
|
AW: Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Ahh, alles klar, DUnit wird hier nur als Framework benutzt um eher "formale" Kriterien zu testen und nicht die Funktionalität an sich - gute Sache.
|
AW: Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Die nächste Version 1.5 des Test Frameworks ist als erste "Alpha Version" nun auf Sourceforge:
![]() Screenshots: ![]() Highlights: * komplett neues, flexibleres Basisframework * Testergebnisse werden "verdichtet" (weniger Zweige im DUnit GUI Testrunner), um die DUnit Darstellung bei großen Projekten übersichtlicher zu machen * Tests können wahlweise nach Forms oder nach Testklassen gruppiert werden, Teil-Testläufe werden dadurch flexibler und schneller |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz