AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Code coverage

Ein Thema von TurboMagic · begonnen am 9. Nov 2022 · letzter Beitrag vom 23. Nov 2022
Antwort Antwort
Seite 1 von 3  1 23      
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Code coverage

  Alt 18. Nov 2022, 13:17
Habe nun das neueste geladen. (Revision: 9b3242bda87c795790a6b6b7f9cab8ef30ab77a0 / Date: 17.11.2022 21:08:28)

Ese ist nicht dabei? Also dproj geladen und versucht zu compilieren. Folgende Meldung kam:
Code:
[Exec Error] The command "copy /Y "c:\devtools\embarcadero\studio\22.0\Redist\win32\WebView2Loader.dll" ..\Binaries\Win32\Debug\
" exited with code 1.
Eine Datei "WebView2Loader.dll" gibt es nicht dort.
Habe eine andere Datei "WebView2Loader.dll" dorthin kopiert und die exe selbst gestartet.
Das scheint auch zu funktionieren und ich gehe mal wieder an mein erstes Testprojekt. Nach ein bischen "rummachen" habe ich nun ein Projekt (dccp) mit 76 Sourcedateien. Dazu gibts aber nur 20 HTML-Dateien.
Die "Delphi-Code-Coverage-Debug.log". Darin gibt es jede Menge "Module ... skipped" - warum steht da nicht drin. Es sind alles Module=units die ich gerne hätte.

Ich versuche mal ein anderes Testprojekt.
- Script und Report Ordner sollten angelegt werden wenn sie nicht schon existieren
- Es kam kurz eine Fehlermeldung "Failure running the batch file. Failure code: 1" beim Ausführen der Batch. Danach hängt der Wizard mit der "Sanduhr" und muss und kann beendet werden. Ich mache in die Batch mal ein "Pause" dazu. Nun sehe ich "Der Befehl ""..\..\Coverage_x64.exe"" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
Wenn ich den absoluten Pfad zu der CodeCoverage_x64.exe eintrage startet er zumindest mal. Als Ergebnis aber nur 6 HTML-Dateien bei über 100 Sourcedateien. Auch hier wieder fast alle skipped

Zum Wizard hätte ich noch einige Fehlermeldungen und Unschönheiten. Wenn aber nicht mal das eigentliche Coverage funktioniert ist das für mich zweitrangig.

Geändert von freimatz (18. Nov 2022 um 13:36 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Code coverage

  Alt 18. Nov 2022, 14:04
Habe da einen schweren Fehler in CodeCoverage:
Delphi-Quellcode:
procedure TCoverageConfiguration.ReadUnitsFile(const AUnitsFileName: string);
var
  InputFile: TextFile;
  UnitLine: string;
begin
  VerboseOutput('Reading units from the following file: ' + AUnitsFileName);

  OpenInputFileForReading(AUnitsFileName, InputFile);
  try
    while not Eof(InputFile) do
    begin
      ReadLn(InputFile, UnitLine);
      // Ensures that we strip out .pas if it was added for some reason
      if FStripFileExtension then
        UnitLine := PathExtractFileNameNoExt(UnitLine);

      AddUnitString(UnitLine);
    end;
  finally
    CloseFile(InputFile);
  end;
end;
FStripFileExtension ist True (warum auch immer).
Dann macht er aus
1. "Bla.Fasel.Kachel.Suelz" das
2. "Bla.Fasel.Kachel"
An der Stelle hat der unitname gar kein ".pas".
Andersherum CodeCoverage funktioniert nicht wenn der unitname einen Punkt enthält

Müsste die Extension in der _dcov_units.lst nicht enthalten sein?
Die Doku auf https://github.com/DelphiCodeCoverag...EADME.markdown sagt nur:
"-uf filename Cover units listed in the file pointed to by filename. One unit per line in the file"
Es fehlt die Angabe ob mit oder ohne Extension und Pfad.

Der Parameter -ife hilft auch nicht. (Auch ein Fehler dort.)
Habe dort etwas ergänzt.

Geändert von freimatz (18. Nov 2022 um 14:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.360 Beiträge
 
Delphi 12 Athens
 
#3

AW: Code coverage

  Alt 18. Nov 2022, 14:26
Zitat:
..
kommt drauf an, was das aktuelle Verzeichnis ist.

Besser verwende man die entsprechende $(Variable) dafür.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Code coverage

  Alt 18. Nov 2022, 14:35
Es wird da keine Variable dafür geben. Habe inzwischen gesehen, dass man den Eintrag für Coverage_x64.exe selber machen kann. Andererseits sollte der default schon auch immer passen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.360 Beiträge
 
Delphi 12 Athens
 
#5

AW: Code coverage

  Alt 18. Nov 2022, 14:42
"immer" ist bei relativen Pfaden immer so eine unsichere Sache.

Eigene Varialbnen in die Umgebungsvariablen (z.B. Tools>Optionen>Environment)


k.A. was $(DIR) ist (grade erst gesehn),

aber $(PROJECTPATH), $(INPUTPATH) und $(OUTPUTPATH)

geht auch rückwärts $(OUTPUTPATH)\..\..\irgendwo, bzw. eigentlich $(OUTPUTPATH)..\..\irgendwo (weil meistens "XyzPath" mit \ und "XyzDir" ohne)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.039 Beiträge
 
Delphi 12 Athens
 
#6

AW: Code coverage

  Alt 18. Nov 2022, 19:52
Hallo,

ja, die Sache hat noch zwei seiten:

1. CodeCovderage.exe: da komme ich heute nicht mehr dazu deine Anmerkungen anzuschauen,
aber diese klingen nach einem Bug der zu untersuchen ist. Und ja, ohne dass dieses Tool
sauber funktioniert bekommen wir keine ganz saubere Lösung hat.

2. Das was ich im Wizard tun kann sollte aber auch nicht vernachlässigt werden, da es
CodeCoverage leichter benutzbar macht. Über je mehr Kinderkrankheiten ich weiß, desto
mehr kann ich beheben versuchen. Ich fange mal gleich mit der Überprüfung und dem Erzeugen
der Pfade an.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Code coverage

  Alt 21. Nov 2022, 14:37
Habe da einen schweren Fehler in CodeCoverage:
...
Der Parameter -ife hilft auch nicht. (Auch ein Fehler dort.)
Habe dort etwas ergänzt.
Dort kam die Meldung ich solle mal versuchen den Parameter -ife vor den -uf zu tun. Ich habe den mal so in der Batch ganz an Anfang gestellt. Nun scheint das zumindest besser zu sein. Ich gebe dort Bescheid.
Du TurboMagic hast im Wizard "optional Parameter" eingebaut, damit man zusätzliche Optionen eingeeben kann? Diese kommen jedoch hinten ran.

BTW wegen WebView2Loader.dll, ich will in das Firmen-Delphi nicht weiteres einfach so installieren. Es wäre schön wenn es auch ohne ginge - zumal ich das HTML gar nicht im Wizard ansehen will.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Code coverage

  Alt 21. Nov 2022, 15:19
So, weitere Meldung: von etlichen Dateien die mich interessieren habe ich nun ordentliche Reports (nicht zu verwechseln mit ordentlicher Testabdeckung )
Du warst ja auch schon fleißig "drüben". Super! Danke für deine Mühe.
Ich würde nun als nächstes mal versuchen beim Schreiben des nächstes unit-tests für die aktuelle Sache mal unter realen Bedingungen das zu benutzen, dass ich auf 100% komme.

2. Das was ich im Wizard tun kann sollte aber auch nicht vernachlässigt werden, da es CodeCoverage leichter benutzbar macht. Über je mehr Kinderkrankheiten ich weiß, desto mehr kann ich beheben versuchen. Ich fange mal gleich mit der Überprüfung und dem Erzeugen der Pfade an.
Ganz sicher. Aber nicht nur "leichter", sondern in meinem Fall war der Wizard überhaupt erst die Möglichkeit eine config zu machen, die für unsere Projekte funktioniert.

Geändert von freimatz (21. Nov 2022 um 15:25 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.039 Beiträge
 
Delphi 12 Athens
 
#9

AW: Code coverage

  Alt 21. Nov 2022, 18:58
So, weitere Meldung: von etlichen Dateien die mich interessieren habe ich nun ordentliche Reports (nicht zu verwechseln mit ordentlicher Testabdeckung )
Du warst ja auch schon fleißig "drüben". Super! Danke für deine Mühe.
Ich würde nun als nächstes mal versuchen beim Schreiben des nächstes unit-tests für die aktuelle Sache mal unter realen Bedingungen das zu benutzen, dass ich auf 100% komme.

2. Das was ich im Wizard tun kann sollte aber auch nicht vernachlässigt werden, da es CodeCoverage leichter benutzbar macht. Über je mehr Kinderkrankheiten ich weiß, desto mehr kann ich beheben versuchen. Ich fange mal gleich mit der Überprüfung und dem Erzeugen der Pfade an.
Ganz sicher. Aber nicht nur "leichter", sondern in meinem Fall war der Wizard überhaupt erst die Möglichkeit eine config zu machen, die für unsere Projekte funktioniert.
Dieser -ife Parameter sorgt auch dafür, dass mein Testprojekt mit der Unit mit Punkt im Namen durchläuft.
Ich commite gleich meine Änderung die diesen Parameter immer einfügt.

Hätte das negative Konsequenzen?

Das wäre dann auch quasi mein RC für die V2.0, bis auf das mit dem Kopieren der Webview DLL...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Code coverage

  Alt 21. Nov 2022, 19:11
disabled anschließend diesen Breakpoint, denn die Zeile wurde ja dann schon aufgerufen.
Nein, denn es wird ja gezählt, wie oft eine Zeile ausgeführt wurde.

Weiß jemand woher der Debugging-Code stammt? Der ist vermutlich nicht nur für dieses Tool geschrieben worden. Die Kommentare geben dazu nicht viel her.
Einfach die readme lesen, da steht es.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:00 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-2025 by Thomas Breitkreuz