Discussion:
Testabdeckung prüfen
(zu alt für eine Antwort)
Matthias Frey
2016-01-04 08:32:21 UTC
Permalink
Hallo zusammen,

gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.

Matthias
Helmuth J.H. Adolph
2016-01-04 12:01:21 UTC
Permalink
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
Grüße -

---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Matthias Frey
2016-01-04 16:29:08 UTC
Permalink
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
Grüße -
Danke für den Hinweis. Das Tool kannte ich noch nicht.
Das Marketing ist wohl etwas dürftig. ;-)

Meine Erfahrungen:
- Die Internetseite sieht auch nicht gerade modern aus. Immerhin bis
Delphi 10 geht es schon.
- Ich versuche mal die Freeware ...
- In der Anleitung finde ich erst mal nichts zur Installation,
ich packe die ZIP aus und starte "Setup.exe". Erst später
sehe ich unter Abschnitt "A.2. Basic Profiling" etwas.
- "Starten Sie ProDelphi über das Delphi-Tools Menü" - finde ich
nicht bei mir.
- Versuche es manuell
- Projekt muss dann manuell angegeben werden, instrumentieren scheint
zu klappen.
- Nach compilieren starten meines Testprogramms
- Dann: (Manche Teile ersetze ich mit "???" )
---------------------------
???.exe - Systemfehler
---------------------------
Das Programm kann nicht gestartet werden, da PROFCALI.DLL auf dem Computer
fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben.
---------------------------

- ok füge das Verzeichnis zur PATH-Variable hinzu
- Nächster Versuch:
---------------------------
ProDelphi
---------------------------
ERROR at file access [J:\???\proflst.asc]
No measurement results will be stored!
---------------------------

- Versuche Start von Delpi als Administator - keine Besserung
- Das Verzeichnis existiert, es ist das wo auch die exe liegt
- Auch Start in cmd.exe (als Administrator) geht nicht.

Zuletzt: das Wort "support" kommt in der Anleitung und auf der
Internetseite nicht vor.

Matthias
Helmuth J.H. Adolph
2016-01-04 20:06:59 UTC
Permalink
Hallo,
Post by Matthias Frey
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
Grüße -
Danke für den Hinweis. Das Tool kannte ich noch nicht.
Das Marketing ist wohl etwas dürftig. ;-)
Dafür ist der Preis auch nur 1/10 des Mitbewerber - Produkts.
Post by Matthias Frey
- Die Internetseite sieht auch nicht gerade modern aus. Immerhin bis
Delphi 10 geht es schon.
Ist das wichtig ?
Post by Matthias Frey
- Ich versuche mal die Freeware ...
- In der Anleitung finde ich erst mal nichts zur Installation,
ich packe die ZIP aus und starte "Setup.exe". Erst später
sehe ich unter Abschnitt "A.2. Basic Profiling" etwas.
Wenn man ProDelphi mit dem Setup-Programm installiert, sollte alles
funktionieren.
Post by Matthias Frey
- "Starten Sie ProDelphi über das Delphi-Tools Menü" - finde ich
nicht bei mir.
Wenn es mit dem SetUp-Programm installiert wurde, ist ProDelphi ein
Menüpunkt im Tools-Menü von Delphi.
Im Hauptfenster von ProDelphi gibt es einen Button 'First Steps', da
steht alles wichtige.
Übrigens ist auf der Web-Seite auch ein Video dass die Benutzung zeigt:

http://www.prodelphi.de/Downloads/ProfilerInActionDE.mp4

In der Regel braucht man die Anleitung nur für Sonderfälle.
Post by Matthias Frey
- Versuche es manuell
- Projekt muss dann manuell angegeben werden, instrumentieren scheint
zu klappen.
Wenn das zu messende Programm von Delphi eingestellt ist, ist es in
ProDelphi voreingestellt, vorausgesetzt Start von ProDelphi über
Tools-Menü.
Post by Matthias Frey
- Nach compilieren starten meines Testprogramms
- Dann: (Manche Teile ersetze ich mit "???" )
---------------------------
???.exe - Systemfehler
---------------------------
Das Programm kann nicht gestartet werden, da PROFCALI.DLL auf dem
Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu
beheben.
Das verstehe ich überhaupt nicht. Die Datei wird bei der
Instrumentierung automatisch in das Verzeichnis des EXE-Files
gespeichert.
Post by Matthias Frey
---------------------------
- ok füge das Verzeichnis zur PATH-Variable hinzu
---------------------------
ProDelphi
---------------------------
ERROR at file access [J:\???\proflst.asc]
No measurement results will be stored!
---------------------------
Diese Datei ebenfalls wie oben.
Post by Matthias Frey
- Versuche Start von Delpi als Administator - keine Besserung
- Das Verzeichnis existiert, es ist das wo auch die exe liegt
- Auch Start in cmd.exe (als Administrator) geht nicht.
Zuletzt: das Wort "support" kommt in der Anleitung und auf der
Internetseite nicht vor.
Auf der Web-Seite steht die Mail-Adresse, ebenso im Info-Fenster
von ProDelphi.
Post by Matthias Frey
Matthias
.

---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Matthias Frey
2016-01-04 16:30:39 UTC
Permalink
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
ich nochmals ...

'Not called methods' ist ein bischen dürftig. Es ist auch wichtig
welche Zeilen nicht durchlaufen wurden. (if then else existiert)

Noch Vorschläge?

Matthias
Peter Below
2016-01-04 18:34:18 UTC
Permalink
Post by Matthias Frey
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von
unit-test zu prüfen. Wir haben AQtime, aber es funktioniert nicht
richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit
kann man sehen, welche Prozedur bei der Laufzeitmessung NICHT
durchlaufen wurde. (www.prodelphi.de)
ich nochmals ...
'Not called methods' ist ein bischen dürftig. Es ist auch wichtig
welche Zeilen nicht durchlaufen wurden. (if then else existiert)
Noch Vorschläge?
Matthias
Sieh mal nach was Peganza.com zu bieten hat.
--
Peter Below
TeamB
Matthias Frey
2016-01-05 07:59:16 UTC
Permalink
Post by Peter Below
Post by Matthias Frey
Noch Vorschläge?
Matthias
Sieh mal nach was Peganza.com zu bieten hat.
Hallo Peter,

Danke. So wie ich das sehe bietet Peganzo nur statische Code-Analyse.

Matthias
Helmuth J.H. Adolph
2016-01-04 20:10:56 UTC
Permalink
Hallo,
Post by Matthias Frey
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
ich nochmals ...
'Not called methods' ist ein bischen dürftig. Es ist auch wichtig
welche Zeilen nicht durchlaufen wurden. (if then else existiert)
ProDelphi arbeitet auf Prozedurbasis, deswegen geringe
Laufzeitverzögerung durch die Messung. Die 'Not-Called Methods'
sind dabei sozusagen 'Abfall-Produkt'.
Helmuth
Post by Matthias Frey
Noch Vorschläge?
Matthias
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Helmuth J.H. Adolph
2016-01-04 20:44:01 UTC
Permalink
Hallo,
es gab auf meiner Web-Seite mal einen Link zu einem Tool, das genau das
gesuchte macht. Als die Websseite starb habe ich den Link gelöscht.
Heute habe ich nochmal nach dem Tool gesucht. UND GEFUNDEN!
Das ist jetzt auf sourceforge.net zu finden. Ich habe es gleich mal
getestet mit Delphi XE und Delphi 10 Seattle. Es funktioniert noch.
Und zwar super.
Ich werd den Link wieder auf meiner Web-Seite eintragen
Helmuth
Post by Matthias Frey
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
ich nochmals ...
'Not called methods' ist ein bischen dürftig. Es ist auch wichtig
welche Zeilen nicht durchlaufen wurden. (if then else existiert)
Noch Vorschläge?
Matthias
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Helmuth J.H. Adolph
2016-01-04 20:46:28 UTC
Permalink
Jetz hatte ich doch den Link vergessen, hier ist er:

http://sourceforge.net/projects/discoverd/

Helmuth
Post by Helmuth J.H. Adolph
Hallo,
es gab auf meiner Web-Seite mal einen Link zu einem Tool, das genau das
gesuchte macht. Als die Websseite starb habe ich den Link gelöscht.
Heute habe ich nochmal nach dem Tool gesucht. UND GEFUNDEN!
Das ist jetzt auf sourceforge.net zu finden. Ich habe es gleich mal
getestet mit Delphi XE und Delphi 10 Seattle. Es funktioniert noch.
Und zwar super.
Ich werd den Link wieder auf meiner Web-Seite eintragen
Helmuth
Post by Matthias Frey
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Hallo zusammen,
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Matthias
Der ProDelphi-Viewer hat eine Funktion 'Not called methods'. Damit kann
man sehen, welche Prozedur bei der Laufzeitmessung NICHT durchlaufen
wurde. (www.prodelphi.de)
ich nochmals ...
'Not called methods' ist ein bischen dürftig. Es ist auch wichtig
welche Zeilen nicht durchlaufen wurden. (if then else existiert)
Noch Vorschläge?
Matthias
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
Matthias Frey
2016-01-06 15:20:56 UTC
Permalink
Post by Helmuth J.H. Adolph
http://sourceforge.net/projects/discoverd/
Helmuth
Post by Helmuth J.H. Adolph
Hallo,
es gab auf meiner Web-Seite mal einen Link zu einem Tool, das genau das
gesuchte macht. Als die Websseite starb habe ich den Link gelöscht.
Heute habe ich nochmal nach dem Tool gesucht. UND GEFUNDEN!
Das ist jetzt auf sourceforge.net zu finden. Ich habe es gleich mal
getestet mit Delphi XE und Delphi 10 Seattle. Es funktioniert noch.
Und zwar super.
Ich werd den Link wieder auf meiner Web-Seite eintragen
Helmuth
Hallo Helmuth,

Danke. Habe mal begonnen mit Test. Leider läuft es bei weder "super"
noch nicht "super", sondern gar nicht. Es erwartet wohl dass die
dpr, map und exe im selben Verzeichnis liegen.

Werde am Montag weiter testen und das versuchen zu umgehen.

Matthias
Peter Schütt
2016-01-06 19:27:09 UTC
Permalink
Hallo,
Post by Matthias Frey
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Wir verwenden
https://sourceforge.net/projects/delphicodecoverage/

Man muss ein bisschen basteln, aber es geht ganz gut.

Ciao
Peter Schütt
--
www.pstt.de
Matthias Frey
2016-01-08 16:28:52 UTC
Permalink
Post by Helmuth J.H. Adolph
Hallo,
Hallo
Post by Helmuth J.H. Adolph
Post by Matthias Frey
gibt es ein (funktionierendes) Tool um die Testabdeckung von unit-test
zu prüfen. Wir haben AQtime, aber es funktioniert nicht richtig.
Wir verwenden
https://sourceforge.net/projects/delphicodecoverage/
Danke.
Post by Helmuth J.H. Adolph
Man muss ein bisschen basteln, aber es geht ganz gut.
Seh da auf den ersten Blick den Eintrag
"Unable to generate coverage for units that have namespaces."

Das wäre bei uns das Aus. Lohnt sich ein weiterer Test für uns?
Post by Helmuth J.H. Adolph
Ciao
Peter Schütt
Grüsse
Matthias
Matthias Frey
2016-01-11 12:28:34 UTC
Permalink
...
Post by Matthias Frey
Post by Peter Schütt
Wir verwenden
https://sourceforge.net/projects/delphicodecoverage/
Danke.
Post by Peter Schütt
Man muss ein bisschen basteln, aber es geht ganz gut.
Seh da auf den ersten Blick den Eintrag
"Unable to generate coverage for units that have namespaces."
Das wäre bei uns das Aus. Lohnt sich ein weiterer Test für uns?
Habe nun doch mal einen Test gemacht.
Es erscheint nur die Meldung
"EJclFileUtilsError: Unable to create directory"
Leider wird nicht vermittelt warum und um welches Verzeichnis es geht.

Ich lade das Projekt über SVN.
Wenn ich die Projektgruppe compilieren lasse, kommt in der
mitgelieferten unit JclSysUtils:
[dcc32 Error] JclSysUtils.pas(3034): E2010 Incompatible types:
'TJclWaitResult' and 'TWaitResult'

Wie bekommt man das zu laufen?

Grüsse
Matthias
Peter Schütt
2016-01-13 09:29:35 UTC
Permalink
Hallo,
Post by Matthias Frey
Post by Matthias Frey
Post by Peter Schütt
Wir verwenden
https://sourceforge.net/projects/delphicodecoverage/
Danke.
Post by Peter Schütt
Man muss ein bisschen basteln, aber es geht ganz gut.
Seh da auf den ersten Blick den Eintrag
"Unable to generate coverage for units that have namespaces."
Das wäre bei uns das Aus. Lohnt sich ein weiterer Test für uns?
Habe nun doch mal einen Test gemacht.
Es erscheint nur die Meldung
"EJclFileUtilsError: Unable to create directory"
Leider wird nicht vermittelt warum und um welches Verzeichnis es geht.
Ich lade das Projekt über SVN.
Wenn ich die Projektgruppe compilieren lasse, kommt in der
'TJclWaitResult' and 'TWaitResult'
Wie bekommt man das zu laufen?
So tief war ich bisher da noch nicht drinnen. Laut einem Kommentar in
dem sourceforge.net/p/delphicodecoverage/tickets/33 soll der Fehler mit den
Namespaces in der 1.0 RC9 behoben sein.

Bei uns funktioniert die Überdeckung bei Klassen mit Punkten in den Unit-
Namen.

Wir verwenden folgendes Skript zum Aufruf (die falschen Zeilenumbrüche bitte
ich zu entschuldigen, das war der News-Reader).

Wichtig in den Skript ist, dass ich die Source-Verzeichnisse sammle und in
eine Datei schreibe. Das ist alles so ein bißchen mit Try-And-Error
entstanden. Wir verwenden das auf unserem Jenkins-Build-Server.

Ciao
Peter Schütt



@echo off

if "%1"=="" then goto Abbruch

echo Erzeuge Testabdeckung

SET PROJECTDIR=%1

SET TESTPROJECTBASE=%2

SET TESTPROJECTDIR=%3
IF "%3"=="" (
IF EXIST %PROJECTDIR%\test (
SET TESTPROJECTDIR=%PROJECTDIR%\test
)
)

IF EXIST %TESTPROJECTBASE%.exe (
SET TESTPROJECTPROGBASE=%TESTPROJECTBASE%
) ELSE (
SET TESTPROJECTPROGBASE=%TESTPROJECTDIR%\bin\%TESTPROJECTBASE%
)

IF EXIST %PROJECTDIR%\src (
SET SRCDIR=%PROJECTDIR%\src
) ELSE (
IF EXIST %PROJECTDIR%\main (
SET SRCDIR=%PROJECTDIR%\main
) ELSE (
SET SRCDIR=%PROJECTDIR%
)
)
echo Source-Verzeichnis: %SRCDIR%

SET COVERAGEDATA=%TESTPROJECTDIR%\COVERAGE
SET COVERAGEAPP=%TCBASE%\BUILDFILES\CodeCoverage.exe

IF NOT EXIST %COVERAGEDATA% mkdir %COVERAGEDATA%

del /S /Q %COVERAGEDATA%\*.*

dir /A:-D /B /S %SRCDIR%\*.PAS>%COVERAGEDATA%\UNITS.UF
echo %SRCDIR%>%COVERAGEDATA%\SOURCES.SD
dir /A:D-H /B /S %SRCDIR%>>%COVERAGEDATA%\SOURCES.SD

for %%c in (%TESTPROJECTPROGBASE%) do set "TESTEXEDIR=%%~dpc"
cd %TESTEXEDIR%

%COVERAGEAPP% -e %TESTPROJECTPROGBASE%.exe -m %TESTPROJECTPROGBASE%.MAP -od
%COVERAGEDATA% -uf %COVERAGEDATA%\UNITS.UF -spf %COVERAGEDATA%\SOURCES.SD -
emma -xml -html
echo Testabdeckung abgeschlossen

goto Ende
:Abbruch
echo "TestCoverage <Projektverzeichnis> <Testprojektname ohne
Dateierweiterung> "

:Ende
--
www.pstt.de
Matthias Frey
2016-01-26 12:21:15 UTC
Permalink
Post by Helmuth J.H. Adolph
Hallo,
Hallo!

Neue Runde, hat etwas gedauert bis ich wieder dazu kam.
Post by Helmuth J.H. Adolph
Post by Matthias Frey
Wie bekommt man das zu laufen?
So tief war ich bisher da noch nicht drinnen. Laut einem Kommentar in
dem sourceforge.net/p/delphicodecoverage/tickets/33 soll der Fehler mit den
Namespaces in der 1.0 RC9 behoben sein.
Bei uns funktioniert die Überdeckung bei Klassen mit Punkten in den Unit-
Namen.
RC10 habe ich hier. Da versuche ich es mal weiter.
Post by Helmuth J.H. Adolph
Wir verwenden folgendes Skript zum Aufruf (die falschen Zeilenumbrüche bitte
ich zu entschuldigen, das war der News-Reader).
So ist das für uns sicher nicht brauchbar. Aber es war für mich der
Anstoss alles explizit mit kompletten Pfadnamen anzugeben.
Dann kam der Fehler EJclFileUtilsError nicht mehr.

Allerdings stürzte das Testprojekt ab. Wenn ich das Ganze starte
mit aktuellem Verzeichnis des Testprogramms dann startet es.

Wenn ich mit -uf eine Datei angebe in der eine unit steht:
+-----------+-----------+-----------+
| Lines | Covered | Covered % |
+-----------+-----------+-----------+
| 0 | 0 | 0 % |
+-----------+-----------+-----------+

Wenn ich mehrere Dateien auswähle bleibt Coverage hängen
und es tut sich mindestens eine Stunde nichts mehr.

Und nun habe ich keine Ideen mehr.
Post by Helmuth J.H. Adolph
Wichtig in den Skript ist, dass ich die Source-Verzeichnisse sammle und in
eine Datei schreibe. Das ist alles so ein bißchen mit Try-And-Error
entstanden. Wir verwenden das auf unserem Jenkins-Build-Server.
Den haben wir auch und wäre auch das Endziel.
Post by Helmuth J.H. Adolph
Ciao
Peter Schütt
Danke

Grüssle
Matthias

Loading...