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