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 7 von 8   « Erste     567 8      
TurboMagic

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

AW: Code coverage

  Alt 18. Nov 2022, 20: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
TurboMagic

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

AW: Code coverage

  Alt 18. Nov 2022, 21:57
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.

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.
Ok, das mit den Pfaden für die Batch und lst Dateien sowie dem Report Ausgabepfad hab' ich jetzt so gelöst, dass diese beim Speichern ggf. erzeugt werden, siehe Development Branch. Zur WebView2Loader.dll: falls die in einer Standard Delphi Installation nicht vorhanden ist, kann man die unter EdgeView2SDK in GetIt nachinstallieren. Falls das also nötig sein sollte, müssen wir das in der Readme erwähnen. Kann man den Fehler beim Kopieren durch ein Voranstellen
von "if exist $(BDS)\Redist..." unterdrücken? Man könnte dann vor dem Versuch den generierten HTML Report anzuzeigen prüfen ob die Datei vorhanden
ist und falls nicht auf das EdgeView2SDK verweisen...
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 19. Nov 2022, 18:49
Ok, zwei Dinge:

1. Ich kann das mit den Unit Namen die einen . enthalten jetzt schon mal nachstellen.
Nächster Schritt wäre das Beseitigen in CodeCoverage.exe. Dann wären wir glaube ich
einen größeren Schritt weiter.

2. Im Wizard hab' ich mehrere kleine Bugfixes vorgenommen:
- Öffnen eines Projektes über das linke menü fügt es gleich der Liste zuletzt benutzer
Projekte hinzu
- Dieser Liste wurde als erster Eintrag auch immer ein "leeres Projekt" hinzugefügt.
Das passiert nicht mehr.
- Die Logik, die beim Ändern des Basis Quellcode Pfades aufgerufen wird, wird nun durch
einen Timer verzögert aufgerufen

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 20. Nov 2022, 11:50
Neuer Commit im Development Branch:

- versuchsweise COdeCoverage Binaries aktualisiert, Punkt im Unitnamen problem scheint aber weiterhin zu bestehen
auch wenn deren Entwickler angeblich was geändert hatten
- Der .DCCP Dateityp kann jetzt für Öffnen und direktes Ausführen aus dem Explorer für den aktuellen Benutzer
registriert werden. Das ist so aber noch nicht, wie es endgültig sein soll. Wird auch in der Uninstall Methode
noch nicht wieder entfernt.

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

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

AW: Code coverage

  Alt 20. Nov 2022, 12:38
Ich habe mir gerade mal den Sourcecode des CodeCoverage Tools selbst angeschaut.

So, wie ich das interpretiere, startet es das zu prüfende Executable als Debugger, setzt jede Menge Breakpoints (vermutlich einen für jede Code-Zeile), logt dann jede Breakpoint-Exception (von Windows) und disabled anschließend diesen Breakpoint, denn die Zeile wurde ja dann schon aufgerufen.

Coole Sache. Damit könnte man noch deutlich mehr machen, z.B. einen Trace des Programmablaufs, ohne dass man dazu irgendwas am Code ändern müsste.

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.
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 20. Nov 2022, 14:01
Frag' doch die Macher des betreffenden GitHub Projektes...
Im schlimmsten Fall ein Issue dazu anlegen, manchmal gibt's da ja die Kategorie "Frage".
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#67

AW: Code coverage

  Alt 21. Nov 2022, 15: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.456 Beiträge
 
Delphi 11 Alexandria
 
#68

AW: Code coverage

  Alt 21. Nov 2022, 16: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 16:25 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 21. Nov 2022, 19:56
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.
Ja, die werden derzeit hinten angehängt.
Ich vermute, dass das so ein Fall ist von "egal wie man's macht gibt's immer jemand dem das nicht passt".
Zur WebView2.dll: ich hatte ja gefragt, ob man den Aufruf im Build Ereignis mittels if Exists oder sowas flexibel
machen kann, damit die nur dann kopiert wird, wenn sie existiert. Leider noch keine Hinweise bekommen, wie man das
am besten macht.

Also: wie muss ich den Copy Aufruf "copy /Y "$(BDS)\Redist\win32\WebView2Loader.dll" $(OUTPUTDIR)" abändern, damit er
nur dann ausgeführt wird, wenn es die $(BDS)\Redist\win32\WebView2Loader.dll wirklich dort gibt?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

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

AW: Code coverage

  Alt 21. Nov 2022, 19: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
Antwort Antwort
Seite 7 von 8   « Erste     567 8      


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 14:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz