Hallo,
Post by Matthias FreyPost by Matthias FreyPost by Peter SchüttWir verwenden
https://sourceforge.net/projects/delphicodecoverage/
Danke.
Post by Peter SchüttMan 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