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 2  1 2      
mytbo

Registriert seit: 8. Jan 2007
482 Beiträge
 
#1

AW: Code coverage

  Alt 11. Nov 2022, 21:39
Magst Du mytbo oder sonst wer mir helfen?
Der Wert für OutputDirectory fehlt! Dieses Verzeichnis wird mit dem Switch -od gesetzt. TurboMagic bezeichnet es ReportOutputPath. Da er die Labels nicht aussagekräftig benamt, muss ich beim Blick in die *.dfm Datei raten. Es könnte Label6 mit der Caption 'Generated report output folder' sein. Ich weiß schon, warum ich Labels im Bezeichnerteil wie das jeweilige Eingabeelement benenne.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 11. Nov 2022, 21:54
Magst Du mytbo oder sonst wer mir helfen?
Der Wert für OutputDirectory fehlt! Dieses Verzeichnis wird mit dem Switch -od gesetzt. TurboMagic bezeichnet es ReportOutputPath. Da er die Labels nicht aussagekräftig benamt, muss ich beim Blick in die *.dfm Datei raten. Es könnte Label6 mit der Caption 'Generated report output folder' sein. Ich weiß schon, warum ich Labels im Bezeichnerteil wie das jeweilige Eingabeelement benenne.

Bis bald...
Thomas
Hallo,

dazu gibt's diverses zu sagen:
  1. Seit eben gibt's ein Update im Master Branch das auch mit der Geschichte zu tun hat, wollte es gerade "verkünden"
  2. Ja, die Labels kann man sicher noch sprechend benennen. Sorry!
  3. Ich habe einen Bug der mir selber Probleme machte behoben: es konnte passieren, dass in die .lst Dateien leere Pfade/Dateinamen ausgegeben wurde. Das Crashte CodeCoverage.exe, bzw. hat das NTDLL.DLL gecrasht (zum Glück nicht den PC)
  4. Ich habe alle Pfade in der generierten batch-Datei in "" gesetzt, falls dort Leerzeichen drin sein sollten.
  5. Ich habe die Option zur Ausgabe der Logdatei in der Batch-Datei jetzt um den ReportOutputPath ergänzt. Damit die .log Datei wo definiertes landet.
  6. Die Links im "About" Dialog sind jetzt funktional, d.h. werden im Webbrowser geöffnet (ShellExec)

Ich glaube, damit hab' ich das Tool wieder ein Stückchen nach vorne gebracht. Oder?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 11. Nov 2022, 22:15
So und um noch etwas zu illustrieren was das Dingens so tut, hab' ich jetzt noch Screenshots am Ende der Readme hinzugefügt.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Code coverage

  Alt 12. Nov 2022, 11:12
Ja, die Labels kann man sicher noch sprechend benennen.
Es soll da Tools geben, die das erleichtern bzw. automatisch einen Namen abfragen (und auch gleich erlauben weitere Properties zu setzen z.B. bei Labels die Caption).
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Code coverage

  Alt 12. Nov 2022, 11:57
Ich hatte unpraktischerweise beim ersten Start die Installation in das Tools-Menü abgebrochen.

Kann man diesen Dialog irgendwie manuell aufrufen?

Edit: Anscheinend nicht, zumindest finde ich im Sourcecode nichts dazu.

Ich habe jetzt den Eintrag in der Registry gelöscht, dann kommt der Dialog wieder:

[Computer\HKEY_CURRENT_USER\SOFTWARE\DelphiCodeCove rageWizard]
KnownConfigurations="...."
Thomas Mueller

Geändert von dummzeuch (12. Nov 2022 um 12:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Code coverage

  Alt 12. Nov 2022, 12:07
Sollte der Tools-Menü Eintrag keine Parameter haben? Sowas wie das aktuelle Projekt?
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 12. Nov 2022, 13:03
Sollte der Tools-Menü Eintrag keine Parameter haben? Sowas wie das aktuelle Projekt?
Hallo,

1. Der Dialog zum Hinzufügen kommt außer beim ersten Start immer dann wieder, wenn eine bisher
noch nicht bekannte Konfiguration entdeckt wird (also auch ein neues Delphi).

2. Das fände ich nur dann sinnvoll, wenn es da einen Platzhalter für das aktuell in der IDE
geladene Projekt gibt. Warum?
a) der Eintrag wäre sonst statisch
b) und würde daher nur für ein bestimmtes Projekt gelten. Ich vermute aber die meisten
Entwickler nutzen die selbe IDE Konfiguration für alle ihre Projekte. Damit würde
ganz sicher immer statisch das richtige geladen, gell? (naja eben eher nicht)
c) es gibt ja die Liste zuletzt benutzter Projekte. Einfach dort Doppelklicken und es wird
geladen.

=> Ich bin nicht komplett abgeneigt, aber eben nur, wenn die Rahmenbedingungen passen. Ich
hab' damit schon noch ein bisschen was vor, das wäre aber nicht die höchste Priorität.
Aber es ist ja ein Open Source Projekt...

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

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Code coverage

  Alt 12. Nov 2022, 13:24
Sollte der Tools-Menü Eintrag keine Parameter haben? Sowas wie das aktuelle Projekt?
2. Das fände ich nur dann sinnvoll, wenn es da einen Platzhalter für das aktuell in der IDE geladene Projekt gibt.

=> Ich bin nicht komplett abgeneigt, aber eben nur, wenn die Rahmenbedingungen passen.
Es gibt zwei Platzhalter, die sich anböten:
  • $PROJECT = Name des aktuellen Projekts
  • $EXENAME = kompletter Pfade des erzeugten Executables (des aktuellen Projekts)

(GExperts macht anscheinend den Tool-Properties Dialog in Delphi 11 kaputt, habe ich gerade bemerkt. )

Zitat:
Aber es ist ja ein Open Source Projekt...
Ist mir beinahe entgangen.
Thomas Mueller

Geändert von dummzeuch (12. Nov 2022 um 14:45 Uhr)
  Mit Zitat antworten Zitat
freimatz

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

AW: Code coverage

  Alt 15. Nov 2022, 07: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 09:11 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 16. Nov 2022, 07:48
Hallo,

danke schon mal für's Testen!
Und ja: das hat sicher auch noch Kinderkrankheiten.

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.
Die aktuelle Version des Wizards (also nicht die V1.0 im GetIt) gibt für -od in der Batch Datei nun artig
das eingegebene Ausgabeverzeichnis an.

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.
Magst du mir sagen welche Optionen nicht gleich verständlich waren?

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.
An dem next hab' ich glaube ich letztens noch was gemacht, bin mir aber auch nicht sicher, ob das in jeder Situation
funktioniert. Es sollte ja Enabled sein, wenn man da einen Pfad eingestellt hat und mindestens eine Datei ausgewählt hat.
Der aktuellste Stand ist im Entwicklungszweig auf GitHub.

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"?
Ja, Run führt nur die Batch Datei aus. Sollte das geändert werden?
Save ist im Prinzip "Save as", schlägt aber den Dateinamen vor, wenn man eine geladene Datei speichert.
Somit kann man auch eine Datei laden und unter einem neuen Namen speichern.

Sollte das geändert werden? Falls ja, wie?

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äää!
Hm, da stellt sich zum einen die Frage, ob alle gewünschten Dateien unterhalb eines bestimmten ordners liegen (ggf. in Unterordnern)?
Also z. B. D:\Projekte\MeinProjekt4711 und dort z. B. in den unterordnern Source und 3rdPartySource statt:
D:\Projekte\MeinProjekt4711 und D:\Projekte\3rdPartySource

Werden alle gewünscvhte Dateien in der Checklistbox aufgeführt?

Wenn man die Batch Datei von der Kommandozeile aus aufruft, werden dann noch irgendwelche Meldungen von CodeCoverage.exe angezeigt?
Sind alle ausgewählten Dateien und Verzeichnisse in <Projektname>_Paths.lst und <ProjektName>_Units.lst enthalten?
Falls ja und es werden nicht alle richtig bearbeitet müssten wir in CodeCoverage nach dem Problem suchen, falls nein ist der Fehler
wohl in meinem Wizard.

(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.)
Das müsste man dort mal nachschauen. Damit hab' ich mich bisher nicht so richtig befasst, da ich ja einen Wizard drumherum schreiben wollte

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.
Mir ist da bisher keine Fehlermeldung bekannt. Aber: müsste die map Datei in dem Ordner, den man im Wizard als Stammordner
für den Code angibt liegen? Da man ja keine dpr/dproj oder so direkt angibt, kann der Wizard nicht automatisch ermitteln wie
diese .map Datei heißen müsste, man könnte aber prüfen und warnen wenn dort keine liegt.

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.
Hm? Die Source Datei im Win32\Debug Ordner des projektes?
Oder hab' ich dich da falsch verstanden?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:40 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