AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen

Ein Thema von mjustin · begonnen am 24. Jan 2012 · letzter Beitrag vom 4. Feb 2012
 
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#1

Open Component Test Framework (OpenCTF) 1.4.3 - VCL Tests dynamisch erstellen

  Alt 24. Jan 2012, 08:47
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):
https://sourceforge.net/projects/openctf/

Screenshots:
https://sourceforge.net/projects/openctf/#screenshots

API Dokumentation:
http://openctf.sourceforge.net/

Getting Started - Englisch:
http://www.habarisoft.com/download/O...ingStarted.pdf

Einstieg - Deutsch:
http://www.habarisoft.com/download/E...gInOpenCTF.pdf

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:
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.
Eine neue Version (1.5.0) ist aktuell in Entwicklung und bereits im Subversion Repository verfügbar (im Bereich branches).

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
Michael Justin
habarisoft.com

Geändert von mjustin ( 5. Feb 2012 um 10:09 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 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