Thema: Code coverage

Einzelnen Beitrag anzeigen

freimatz

Registriert seit: 20. Mai 2010
1.446 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Code coverage

  Alt 15. Nov 2022, 08:42
Magst Du mytbo oder sonst wer mir helfen?
Der Wert für OutputDirectory fehlt! Dieses Verzeichnis wird mit dem Switch -od gesetzt.
Das wird es damals wohl wohl sein. Es stand da
Code:
-od directory      -- the output directory where reports shall be
                       generated - default is current directory
Und aufgrund dem "default" kam ich nicht auf die Idee dass das gesetzt werden müsse.

Ich habe nun einen Neuanfang mit dem Wizard gewagt. Dazu benutze ich unser "tiefliegendste" Testprojekt. Erfahrungen:
1. "Einfach runterladen, Projekt öffnen und F9 drücken..." ist ein bischen dürftig. Vorher Lesen Readme hätte geholfen. Map war nicht da, musste abbrechen und neu starten.
2. Bei manchen Einträgen musste ich raten was gemeint ist. Vermutlich habe ich richti geraten.
3. Erster Durchlauf sah schon mal gut aus, es gab immerhin ein Ergebnis.
4. Allerdings war das Ergebnis vom unit test und nicht vom zu testenden Code, also nochmals in Wizard. Bei Source dann die richtige Datei ausgewählt.
5. Da ist wohl ein Bug, denn "Next" war Disabled. Ich bin dann Zurück und wieder vor, dann war sie enabled.
6. Bin nun am Schluss. Muss ich jetzt nochmals "Save&Generate" machen. Ich versuchs, wieso werde ich nach einem Dateinamen gefragt? Muss ich jedes Mal speichern oder kann ich gleich nach einer Änderung auf "Run"?
7. Ok ich speichere halt und geh dann auf Run. Läuft durch.
8. Wieder ein Ergebnis, aber nicht von der Datei die ich will. Ich markiere nun halt mal alle Dateien. Die zu testende Datei und die Datei mit dem unit test ist dabei. Dieses Testprojekt beinhaltet 1359 unit tests in ca. 70 units und dazu nochmals 70 units mit dem Produktivcode.
Im Output befinden sich jedoch wieder nur wenige Dateien. Als Outputformat habe ich HTML gewählt. Es gibt im Wizard drei Seiten
- "Summary Coverage Report" - da sind 10 Dateien aufgeführt
- Coverage report for <eine unit-test-unit> - da sind drei Dateien aufgeführt, habe zu keiner ein Ergebnis.
- "Summary Coverage Report" - sieht aus wie die erste
Nun bin ich diesbezüglich ratlos. Hilfäää!

(Etwas anderes was ich bei meinen Versuchen festgestellt. Es sind einige unit test fehlgeschlagen mit der Meldung er könne Dateien nicht schreiben. Jedesmal war im Pfad der Datei der Ordner enthalten, den ich für die Coverage angegeben habe. Diese liegt jedoch ganz woanders. Könnte es sein, dass DelphiCodeCoverage und die unit test das Aktive Verzeichnis (ChDir) benutzen und ändern? Das würde dies für mich erklären. Das Problem ist für mich jedoch sekundär.)

Nachträge:
1. Natürlich muss nicht nur das Testprojekt eine map enthalten, sondern auch das Package mit dem Produktivcode.
Gibt es dazu irgendwo eine Fehlermeldung
Mit der map ist die Ausgabe nun schon wesentlich umfangreicher, jedoch immer noch fehlt das meiste.
2. Entdeckt habe ich eine log Datei, die Delphi-Code-Coverage-Debug.log mit über 12MByte.
Zu der Datei die mich interssiert steht allerdings darin:
"Module Bla.Test.Math.Geometry skipped"
Eingeschaltet müsste die m.E. sein, in der dccp steht:
<SourceFile Selected="True">Bla.Math.Geometry.pas</SourceFile>
<SourceFile Selected="True">Test\Bla.Test.Math.Geometry.pas</SourceFile>
Eher am Ende der log finde ich sehr viele
Exception during generation of unit coverage for: Bla.pas exception:Cannot open file "D:\Project\_Anderes\delphi-code-coverage-wizard-plus-master\Binaries\Win32\Debug\Bla.pas". Das System kann die angegebene Datei nicht finden
Dabei ist bei mir "D:\Project\_Anderes\delphi-code-coverage-wizard-plus-master\Binaries\Win32\Debug" der Ordner wo die "DelphiCodeCoverageWizard.exe" drin liegt. Die Bla.pas ist jeweils eine Sourcedatei von uns, die sicherlich in diesem Ordner liegen sollte.

Geändert von freimatz (15. Nov 2022 um 10:11 Uhr)
  Mit Zitat antworten Zitat