![]() |
AW: Code coverage
So, letztes Update für heute:
im Development Branch ist jetzt eine Fassung bei der man kontrollieren kann, ob die Logmeldungen in eine Text Datei gehen (so war's bisher immer automatisch) und/oder per OutputDebugString ausgegeben werden. AUßerdem gibt's dort noch eine Option mit der man den Exit Code der aufgerufenen Anwendung durchreichen kann. |
AW: Code coverage
Hallo,
neues update im Development Branch:
Grüße TurboMagic |
AW: Code coverage
Zitat:
Ich hab' jedenfalls im Commit von eben deinen Save/Save as Wunsch aufgenommen und die Buttontexte auf diesem Bildschirm etwas verbessert. Passt das so? Außerdem hab' ich auf dem "Unit test executable" Bildschirm ein paasr Texte zwischenzeitlich auch geändert. Ist das so jetzt besser verständlich? Grüße TurboMagic |
AW: Code coverage
Hallo,
ab und zu sind lange build-Zeiten auch mal praktisch ;-) Kann zwischendurch mal hier weiter schauen. Erstmal ein fettes Dankeschön für Eure Mühe. Habe die neue Version geholt und nun die git-Variante benutzt. Ich bin nun auf f12eea00fd9e3 vom 16.10.2022 17:07:08 Aber die ist doch wohl veraltet? :shock: |
AW: Code coverage
Ähm ja, die ist veraltet. Die neueste aus dem Entwicklungszweig ist fd57652 und ca. 3 Stunden alt.
Grüße TurboMagic |
AW: Code coverage
Naja, es gibt schon wieder einen Commit: a7c4b8c
Aber jetzt ist erst Mal Pause. Was kam diesmal nheues hinzu? - Kontextmenü in der Liste zuletzt benutzer Projekte zum Löschen nicht mehr vorhandener Projektdateien aus der Liste |
AW: Code coverage
Wie funktioniert denn dieses GitHub? Da ist die letzte Änderung vier Tage alt und nicht wenige Stunden (Stand 17.11.22). Wie kommt man an die neuesten Änderungen...gegen Mitgliedsbeitrag :lol:?
Ah! Branches, der Master Branch wird nach außen getragen, der Entwicklungszweig kann aber aktueller sein. Sherlock |
AW: Code coverage
Ich sehe dort nur zwei branches: master und wiki :gruebel:
|
AW: Code coverage
Beobachtungen während und nach der Installation - vielmehr Compilation:
1. Ein Buildereignis möchte gerne eine WebView2.dll aus meiner Delphi Installation in den Erzeugungsordner kopieren. Diese Datei hat mein Delphi nicht. 2. Beim Beenden des Plugins wird ein Memoryleak Dialog angezeigt. 3. Ein Versuch eine ini-Datei zu beschreiben schlägt fehl, vermutlich, weil es den Ordner nicht gibt, in dem die Datei liegen soll: Zitat:
Zitat:
Sherlock |
AW: Code coverage
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
ich versuche mal deine Fragen zu beantworten:
Danke auch mal fürs Testen! Ich hoffe, dass ich das die nächsten Tage noch etwas runder hin bekomme... Grüße TurboMagic |
AW: Code coverage
Zitat:
Aber: man kann den Entwiclungszweig auch direkt aufrufen: ![]() Grüße TurboMagic |
AW: Code coverage
Mit Grüßen vom "Nachtkrapp" (wer's nicht weiß: in mindestens einigen Süddeutschen Gegenden ein
Synonym für Raben, die Kinder abholen die nachts nicht rechtzeitig ins Bett gehen) gibt's einen neuen Commit. Dieser enthält folgende Verbesserungen:
Damit sollte ich zumindst ein paar der von Sherlock identifizierten Probleme beseitigt haben. |
AW: Code coverage
Nutzt nichts wenn man den nicht sieht ... :stupid:
|
AW: Code coverage
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Siehe Anhang! Kann das also nicht nachvollziehen. 2. Habe gestern auch den Master Branch auf diesen Stand aktualisiert. Grüße TurboMagic |
AW: Code coverage
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir so. Allerdings fehlt das "plus". Ich habe auf den Link in deinem ersten Beitrag geklickt. Ok weiter unten im Text ist noch ein Link. Bei dem habe ich nun development.
|
AW: Code coverage
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:
Eine Datei "WebView2Loader.dll" gibt es nicht dort.
[Exec Error] The command "copy /Y "c:\devtools\embarcadero\studio\22.0\Redist\win32\WebView2Loader.dll" ..\Binaries\Win32\Debug\
" exited with code 1. 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. |
AW: Code coverage
Habe da einen schweren Fehler in CodeCoverage:
Delphi-Quellcode:
FStripFileExtension ist True (warum auch immer).
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; 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 :cyclops: Müsste die Extension in der _dcov_units.lst nicht enthalten sein? Die Doku auf ![]() "-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 ![]() |
AW: Code coverage
Zitat:
Besser verwende man die entsprechende $(Variable) dafür. |
AW: Code coverage
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.
|
AW: Code coverage
"immer" ist bei relativen Pfaden immer so eine unsichere Sache. :angle:
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) |
AW: Code coverage
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 |
AW: Code coverage
Zitat:
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... |
AW: Code coverage
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 |
AW: Code coverage
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 |
AW: Code coverage
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. |
AW: Code coverage
Frag' doch die Macher des betreffenden GitHub Projektes...
Im schlimmsten Fall ein Issue dazu anlegen, manchmal gibt's da ja die Kategorie "Frage". |
AW: Code coverage
Zitat:
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. ;-) |
AW: Code coverage
So, weitere Meldung: von etlichen Dateien die mich interessieren habe ich nun ordentliche Reports (nicht zu verwechseln mit ordentlicher Testabdeckung :lol:)
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. Zitat:
|
AW: Code coverage
Zitat:
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 |
AW: Code coverage
Zitat:
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 |
AW: Code coverage
Zitat:
Zitat:
|
AW: Code coverage
Zitat:
RC für eine V? Bist Du altmodisch:-D Heutzutage gibts doch nur noch Early Access und nie mehr eine 1.0 :twisted: |
AW: Code coverage
[QUOTE=TurboMagic;1515142][QUOTE=freimatz;1515131]
Zitat:
Code:
if exist "$(BDS)\Redist\win32\WebView2Loader.dll" copy /Y "$(BDS)\Redist\win32\WebView2Loader.dll" "$(OUTPUTDIR)"
|
AW: Code coverage
|
AW: Code coverage
Zitat:
Bis ich dann verstanden habe was er will. Da keines der mir bekannten Tools das "out of the box" kann, hab' ich ihn an die EN-DP verwiesen... :lol: |
AW: Code coverage
[QUOTE=dummzeuch;1515159][QUOTE=TurboMagic;1515142]
Zitat:
Bei mir hat das nämlich nix kopiert. Es wirft zwar keinen Fehler, wenn's die Datei an der Quelle nicht gibt, aber wenn, kopiert es die auch nicht...:( Ich hab da 1:1 das hier damit ersetzt: copy /Y "$(BDS)\Redist\win32\WebView2Loader.dll" "$(OUTPUTDIR)" |
AW: Code coverage
Hallo,
ein neuer Commit ist im Development Branch. Was wurde verbessert? - ein Label, welches einen pfad anzeigt war nicht richtig dimensioniert - Auf der Seite mit den "Misc. Einstellungen" hab' ich jetzt die Möglichkeit geschaffen mittels Index festzulegen wo die zusätzlichen parameter in die Batch Datei eingefügt werden sollen. 0 ist gaanz vorne und 20 ganz hinten, egal wieviele normale Parameter schon vorhanden sind, das wird entsprechend angepasst. Momentan ist der Index auf 20 beschränkt, wenn es noch mehr werden muss man das halt ändern (reine Eingabebeschränkung). Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 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