Kollektor für Codeabdeckung ohne GUI starten und stoppen

Informationen zu dieser Task

Der Headless-Modus ermöglicht es Ihnen, die Code Coverage Collection ohne Benutzeroberfläche auszuführen. Dieser Modus ist ideal für Umgebungen, in denen keine UI-Workbench installiert ist, oder wenn Sie einen Lauf über die Befehlszeile oder als gestartete Aufgabe initiieren. Weitere Informationen zur Ausführung des Collectors als gestartete Aufgabe finden Sie unter Ausführen von Headless Code Coverage Collector als gestartete Aufgabe.

Sie können den Collector entweder über die Befehlszeile oder als gestartete Aufgabe ausführen, je nach den Benutzereinstellungen und der Struktur der Build-Pipeline. Faktoren wie die Frage, ob der Collector während des Build-Prozesses ausgelöst wird oder welche Tools in die Pipeline integriert sind, können diese Entscheidung beeinflussen.

Anmerkungen:
  • Die Codeabdeckung ohne GUI ist unter macOS nicht verfügbar.
  • Der Headless Code Coverage Collector unter Windows und Linux ist veraltet. Verwenden Sie den Headless Code Coverage Collector auf z/OS.
Der Headless Code Coverage Collector führt einen Daemon aus, der auf eine eingehende Verbindung wartet, so wie die Benutzeroberfläche einen Debug-Daemon verwendet. Starten Sie Ihre Anwendung wie bei der Code-Coverage-Erfassung in der Benutzeroberfläche, verwenden Sie jedoch die IP/Host :Port des Headless Code Coverage Collector. Weitere Informationen finden Sie unter Generieren der Codeabdeckung im Headless-Modus mithilfe des Collectors.
Hinweis: Standardmäßig werden die Ergebnisse im Stammverzeichnis des Home-Verzeichnisses des Benutzers unter dem Ordner CC gespeichert. Sie können den Parameter -output verwenden, um die Standardeinstellung zu ändern.
Nachfolgend wird das Syntaxdiagramm für den Befehl codecov gezeigt. Sie können entweder den Parameter für einen einzelnen Buchstaben oder den vollständigen Parameter für jede Option verwenden. Bei allen Parametern und Werten muss die Groß-/Kleinschreibung beachtet werden.
Syntaxdiagramm lesenVisuelles Syntaxdiagramm überspringencodecov -h,help-D,stopdaemon=<port>-P,printparms-d,startdaemon -a,allowoutputlocation=<TRUE|FALSE>-A,applid=<applid>-b,enablebasicauth=<TRUE|FALSE>-C,startupcommandlist=<path>-c,singleconnect-E,ignoreerrors-e,exportertype=<CCSONARQUBE|SQ|CCPDF|PDF|CCCOBERTURA|COB>-G,exportencoding=<encoding>-f,optionsfile=<path>-g,tag="text"-I,moduleincludelist=<path>-i,moduleinclude=<module_list>-L,localonly-l,cclevel=<LINE|FUNCTION>-o,output=<path>-O.root=<dirname>|<path>-K,daemonkeystoreproperties=<path>-P,printparms-p,port=<port list>-R,filter=<filters>-r,filterlist=<path>-S,ccsport=<port>-k,ccskeystoreproperties=<path>-s,savesource=<TRUE|FALSE>-T,timeout=<seconds>-t,testid=<testid>-u,authkeystoreproperties=<path>-v,view=<DEFAULT|SOURCE_ONLY|LISTING_ONLY|D|S|L>-X,moduleexludelist=<path>-xmoduleexclude=<module_list> -z,zunit=<moduename|modulename:csectname>
Optionsliste
Format: codecov [Optionen]
-a,allowoutputlocation=<TRUE|FALSE>
Gibt an, ob -o,output im Startschlüssel zulässig ist. Der Standardwert ist FALSE.
-A,applid=<applid>
Der APPLID-Parameter, der bei der Trägerauthentifizierung verwendet wird, generiert und authentifiziert Träger-Tokens auf dem Headless Code Coverage Service auf z/OS.
-b,enablebasicauth=<TRUE|FALSE>
Ermöglicht die Basisauthentifizierung beim Headless Code Coverage Service auf z/OS. Der Standardwert ist FALSE.
-C,startupcommandlist=<path>
Gibt eine Datei an, die Befehle enthält, die beim Start an die Debug-Engine gesendet werden.
-c,singleconnect
Wird nach einer einzigen Dämonverbindung beendet (muss mit -startDaemon verwendet werden).
-D,stopdaemon=<port>
Stoppt den Dämon, der an diesem Port empfangsbereit ist.
-d,startdaemon
Startet im Dämonmodus und wartet auf Verbindungen. Wenn -port nicht angegeben wird, wird der nächste verfügbare Port verwendet. Die Nummer des verwendeten Ports wird in der Konsole angezeigt.
-E,ignoreerrors
Es werden Ergebnisse generiert, auch wenn während der Sitzung Fehler auftreten. Die Ergebnisse sind möglicherweise unvollständig.
-e,exportertype=<CCSONARQUBE|SQ|CCPDF|PDF|CCCOBERTURA|COB>
Gibt das Exportformat für die Codeabdeckungsdaten an. Sie können mehrere Exporttypen angeben, indem Sie ein Komma zwischen den Exportformaten verwenden.
  • -e,exportertype=CCSONARQUBE oder -e,exportertype=SQ erzeugt das Format SonarQube mit der Erweiterung .xml. Jedes Testergebnis befindet sich in einem eindeutigen Unterverzeichnis.
  • -e,exportertype=CCPDF oder -e,exportertype=PDF erstellt das PDF-Format mit der Erweiterung .pdf. Standardmäßig ist die Quelle im PDF-Bericht enthalten. Um die Quelle aus dem Bericht auszuschließen, geben Sie -s,savesource=false an.
  • -e,exportertype=CCCOBERTURA oder -e,exportertype=COB erzeugt das Cobertura-Format mit der Erweiterung .xml. Jedes Testergebnis befindet sich in einem eindeutigen Unterverzeichnis.
-f,optionsfile=<path>
Liest Befehlsargumente aus der angegebenen Optionsdatei.
-G,exportencoding=<encoding>
Gibt eine Codierung für die Quelle an, wenn Sie im SonarQube -Format exportieren. Standardmäßig wird UTF-8 angegeben.
Dieser Parameter ist nur gültig, wenn -e,exportertype=CCSONARQUBE angegeben ist.
-g,tag="text"
Gibt einen Tag an, der den CC-Ergebnissen zugeordnet ist, z. B. test ID.
-h,help
Gibt die Hilfeanzeige aus.
-I,moduleincludelist=<path>
Nicht mehr verwendet. Verwenden Sie stattdessen -R,filter=<filters> oder -r,filterlist=<path>.
Gibt eine Datei an, die eine Liste mit Modulnamen oder regulären Ausdrücken enthält, die bewirken, dass übereinstimmende Modulnamen in die Codeabdeckung eingeschlossen werden. Der Parameter zum Einschließen von Modulen setzt den Parameter zum Ausschließen von Modulen außer Kraft.
-i,moduleinclude=<module_list>
Nicht mehr verwendet. Verwenden Sie stattdessen -R,filter=<filters> oder -r,filterlist=<path>.
Durch Kommas getrennte Liste von Modulnamen oder regulären Ausdrücken, die Module in die Codeabdeckung einschließen. Der Parameter zum Einschließen von Modulen setzt den Parameter zum Ausschließen von Modulen außer Kraft.
-k,ccskeystoreproperties=<path>
Startet CCS im sicheren Modus mit den in der Eigenschaftendatei des Keystores angegebenen Einstellungen. Die Schlüsselspeicher-Eigenschaftsdatei muss den Pfad zu einer gültigen Schlüsselspeicherdatei (ccskeystorefile) und das Passwort (ccskeystorepassword) enthalten. Das Schlüsselspeicher-Passwort kann mit dem z/OS Debugger Password File Generator verschlüsselt werden, um die Speicherung von Klartext zu verhindern. Siehe "Generierung sicherer Passwörter für Schlüsselspeicher zur Codeabdeckung ". Unter Windows und Linux wird eine Beispieldatei, ccskeystoreinfo.properties, im selben Verzeichnis wie der Befehl codecov bereitgestellt. Unter z/OS befindet sich diese Datei im Verzeichnis "headless-code-coverage".
Unter Windows und Linux finden Sie eine Beispieldatei in <install_location>/headless-cc/ccskeystoreinfo.properties
Unter z/OS finden Sie eine Beispieldatei im Verzeichnis /usr/lpp/IBM/debug/headless-code-coverage/ccskeystoreinfo.poperties
Hinweis : Bei Windows müssen Sonderzeichen in der Eigenschaftendatei mit einem Backslash maskiert werden. Zum Beispiel: ccskeystorefile=C\:\\headless-cc\\keystore.jks.
-K,daemonkeystoreproperties=<path>
Startet den Code-Coverage-Daemon im sicheren Modus mit den in der Keystore-Eigenschaftendatei angegebenen Einstellungen. Die Schlüsselspeicher-Eigenschaftendatei muss den Pfad zu einer gültigen Schlüsselspeicherdatei (keystorefile) und das Passwort (keystorepassword) enthalten. Das Passwort muss mit dem Debugger-Passwortdateigenerator von z/OS generiert werden. Siehe Generieren sicherer Keystore-Passwörter für die Codeabdeckung und Generieren sicherer Keystore-Passwörter für den Remote Debug Service. Unter Windows und Linux wird eine Beispieldatei, keystoreinfo.properties, im selben Verzeichnis wie der Befehl codecov bereitgestellt. Unter z/OS befindet sich diese Datei im Verzeichnis "headless-code-coverage". Wenn der Code-Coverage-Daemon verwendet wird, muss die Debug-Engine auch die entsprechenden Anmeldeinformationen bereitstellen. Siehe "Sichere Kommunikation zwischen z/OS Debugger und dem Remote-Debugger für eingehende Debugging-Sitzungen ermöglichen ".
Hinweis : AT-TLS wird bei der Codeabdeckung ohne Bildschirm nicht unterstützt.
-L,localonly
Der Dämon akzeptiert nur Verbindungen vom lokalen Host (localhost).
-l,cclevel=<LINE|FUNCTION>
Die Codeabdeckungsebene ("LINE" oder "FUNCTION").
-o,output=<path>
Das Verzeichnis zum Speichern der Ergebnisdateien für die Codeabdeckung. Unter dem Ausgabeverzeichnis für jede Sitzung wird ein Ergebnis erstellt, das den Programmnamen und die Zeitmarke enthält. Ein Unterverzeichnis wird erstellt, wenn Sie das Ergebnis im Format SonarQube oder Cobertura exportieren.
-O,root=<dirname>|<path>
Gibt einen Verzeichnisnamen oder einen voll qualifizierten Pfad an, um das Stammverzeichnis für die in der Codeabdeckung enthaltenen Quelldateien zu definieren.
  • -O,root=<dirname>: Legt das Top-Level-Verzeichnis für die Quelldateien fest, die in das Code-Coverage-Ergebnis aufgenommen werden.
  • -O,root=<path>: Entfernt den angegebenen Pfad aus den resultierenden Quelldateipfaden.
Wenn Sie den Collector beispielsweise mit der Option -O,root starten, die auf eines der folgenden Formate eingestellt ist:
root=projectA
root=/home/username
Dann sammeln Sie die Codeabdeckung für ein Programm, das eine Quelldatei unter der Adresse enthält:
/home/user/projectA/programA.cbl
Der Kollektor gibt ein Code-Coverage-Ergebnis aus, wobei die Quelldatei über einen relativen Pfad referenziert wird:
projectA/programA.cbl
-P,printparms
Gibt eine Zusammenfassung der angegebenen Parameter aus.
-p,port=<port list>
Die Portnummer, Portliste (Port,Port) oder der Portbereich (Port-Port), die bzw. der vom Debugdämon verwendet wird.
-R,filter=<filters>
Gibt eine Liste mit Filtern an, die in einzelne oder doppelte Anführungszeichen eingeschlossen sind. Verwenden Sie Kommas, um die Filter zu trennen. Die Filter ermöglichen es, dass Zeichenfolgen oder reguläre Ausdrücke Module, Teile und Dateien ein- oder ausschließen.
Weitere Informationen finden Sie unter Filtern der Codeabdeckungsergebnisse während der Sammlung.
-r,filterlist=<path>
Gibt eine Datei an, die eine Liste mit Filtern enthält, um Module, Teile und Dateien ein- oder auszuschließen. Jeder Filter wird in einer eigenen Zeile angezeigt.
Weitere Informationen finden Sie unter Ergebnisse während der Erfassung im automatischen Modus filtern.
-S,ccsport=<port>
Startet Code Coverage Service (CCS) am angegebenen Port. Der Kollektor für die Codeabdeckung und CCS werden nicht gestartet, wenn der Port bereits verwendet wird.
Wenn Sie CCS mit Headless Code Coverage auf z/OS ausführen, ist die Bearer- oder Basisauthentifizierung aktiviert. z/OS Berechtigungsnachweise sind für den Zugriff auf die CCS-REST-API erforderlich und es werden Authentifizierungsaufforderungen angezeigt, wenn Sie die Ergebnisse in der Ansicht Ergebnisse der Codeabdeckung anzeigen. Codeabdeckungsergebnisse werden in Benutzerunterverzeichnissen gespeichert und Benutzer haben nur Zugriff auf ihre eigenen Ergebnisse.
CCS verwendet den Server Jetty für die Bereitstellung der REST-API. Standardmäßig konfiguriert CCS den Denial-of-Service-Filter Jetty mit 25 Anforderungen pro Sekunde. Sie können die Standardeinstellung auf eine der folgenden Arten überschreiben:
  • Ändern Sie für die Windows-und Linux -Versionen des Codeabdeckungskollektors ohne GUI die Datei <install_location>/headless-cc/codecov.ini und definieren Sie die folgende Systemeigenschaft im Abschnitt -vmargs :
    -DCCSmaxRequestsPerSec=<desired_value>
  • Für den Codeabdeckungskollektor ohne GUI von z/OS oder wenn Sie CCS mit Remote Debug Serviceverwenden, müssen Sie die Umgebungsvariable OPENJ9_JAVA_OPTIONS mit dem Java-Argument festlegen, bevor Sie die Codeabdeckung ohne GUI starten:
    export OPENJ9_JAVA_OPTIONS="$OPENJ9_JAVA_OPTIONS -DCCSmaxRequestsPerSec=<desired_value>"
  • Informationen zu Remote Debug Servicefinden Sie unter Anpassung mit dem Beispieljob EQARMTSU.
CCS konfiguriert außerdem eine QoS -Datei (Quality of Service, Servicequalität) mit 20 gleichzeitigen Anforderungen. Sie können die Standardeinstellung auf eine der folgenden Arten überschreiben:
  • Für die Windows- und Linux -Versionen des Headless Code Coverage Collector ändern Sie die Datei <install_location>/headless-cc/codecov.ini und definieren Sie die folgende Systemeigenschaft im Abschnitt -vmargs :
    -DCCSmaxConcurRequests=<desired_value>
  • Für den z/OS Headless Code Coverage Collector müssen Sie die Umgebungsvariable OPENJ9_JAVA_OPTIONS mit dem Argument java setzen, bevor Sie die Headless Code Coverage starten:
    export OPENJ9_JAVA_OPTIONS="$OPENJ9_JAVA_OPTIONS -DCCSmaxConcurRequests=<desired_value>"
  • Informationen zu Remote Debug Servicefinden Sie unter Anpassung mit dem Beispieljob EQARMTSU.
Sie können CCS auch weiter einschränken, um den Zugriff nur über den IP-Namen und nicht über die IP-Adresse zuzulassen, unter der CCS ausgeführt wird:
  • Für die Windows- und Linux des Headless Code Coverage Collectors ändern Sie die <install_location>/headless-cc/codecov.ini
    -Dccs_blockIPAccess=true
  • Für den z/OS Headless Code Coverage Collector müssen Sie die Umgebungsvariable OPENJ9_JAVA_OPTIONS mit dem Argument java setzen, bevor Sie die Headless Code Coverage starten:
    export OPENJ9_JAVA_OPTIONS="$OPENJ9_JAVA_OPTIONS -Dccs_blockIPAccess=true"
  • Informationen zu Remote Debug Servicefinden Sie unter Anpassung mit dem Beispieljob EQARMTSU.
Unter Linux und Windows entpackt Jetty Webdateien im Verzeichnis temp . Unter z/OSwerden die Dateien in einem verdeckten Verzeichnis im Ausgangsverzeichnis des Benutzers gespeichert. Um dies zu überschreiben, können Sie den Wert für die CCSworkdir -Umgebung festlegen, bevor Sie den Codeabdeckungscollector ohne GUI starten.
Beispiel für Linux und z/OS:
export CCSworkdir=/u/user/jettyfiles
In der Windows-Befehlsshell:
SET CCSworkdir=C:\jettyfiles
-s,savesource=<TRUE|FALSE>
Speichert die Quelle mit den Ergebnissen. Der Standardwert ist TRUE. Der Wert für diesen Parameter steuert auch, ob die Quelle mit der PDF-Exportkomponente angezeigt wird. Wenn beispielsweise -savesource=TRUE mit -exportertype=CCPDF angegeben wird, wird die Quelle in den PDF-Bericht eingeschlossen.
-T,timeout=<seconds>
Die Anzahl Sekunden, die auf eine Antwort der Debug-Engine gewartet werden soll, bevor das Zeitlimit überschritten wird. Der Standardwert ist 120 Sekunden. Die Sitzung wird beendet und die bereits erfassten Ergebnisse werden gespeichert. Bei Angabe von 0 (null) wird unendlich lange gewartet.
-t,testid=<testid>
Die Ergebnisse werden der angegebenen testid zugeordnet.
-u,authkeystoreproperties=<path>
Ermöglicht die Authentifizierungsprüfung für den Codeabdeckungs-Kollektor-Daemon. Die Schlüsselspeicher-Eigenschaftendatei muss den Pfad zu einer gültigen Schlüsselspeicherdatei (keystorefile) und das Passwort (keystorepassword) enthalten. Das Passwort muss mit dem z/OS Debugger Password File Generator generiert werden. Siehe Generieren sicherer Keystore-Passwörter für die Codeabdeckung und Generieren sicherer Keystore-Passwörter für den Remote Debug Service. Unter Windows und Linux wird eine Beispieldatei, keystoreinfo.properties, im selben Verzeichnis wie der Befehl codecov bereitgestellt. Unter z/OS befindet sich diese Datei im Verzeichnis "headless-code-coverage ". Wenn die Authentifizierung aktiviert ist, muss das Zertifikat auch beim Aufrufen des z/OS -Debuggers bereitgestellt werden. Siehe "Aktivierung der Authentifizierung für eingehende TCP/IP-Verbindungen "
-v,view=<DEFAULT|SOURCE_ONLY|LISTING_ONLY|D|S|L>
Wählt die Ansicht aus, die beim Speichern der Quelle verwendet werden soll.
  • DEFAULT oder D verwendet die von der Maschine bevorzugte Ansicht.
  • SOURCE_ONLY oder S erlaubt nur die Aufnahme von Source Views in die Code Coverage Collection.
  • LISTING_ONLY oder L erlaubt nur die Aufnahme von Listing Views in die Code Coverage Collection.
Anmerkungen:
  • Um Codeabdeckung auf Quellcodeebene mit COBOL 6.2 und höher zu sammeln, muss SOURCE_ONLY verwendet werden.
-X,moduleexludelist=<path>
Nicht mehr verwendet. Verwenden Sie stattdessen -R,filter=<filters> oder -r,filterlist=<path>.
Gibt eine Datei an, die eine Liste regulärer Ausdrücke enthält, die bewirken, dass übereinstimmende Modulnamen aus der Codeabdeckung ausgeschlossen werden.
-x,moduleexclude=<module_list>
Nicht mehr verwendet. Verwenden Sie stattdessen -R,filter=<filters> oder -r,filterlist=<path>.
Durch Kommas getrennte Liste von Modulnamen oder regulären Ausdrücken, die Module aus der Codeabdeckung ausschließen.
-z,zunit=<modulename>|<modulename:csectname>

Zeigt an, dass es sich bei der Codeabdeckungssitzung um einen ZUnit-Testfall oder einen IBM Test Accelerator for Z Early Development Testing Unit Testfall handelt. Der Name der Ausgabedatei, die Test-ID und ein Filter werden so initialisiert, dass sie dem angegebenen Modul- oder CSECT-Namen entsprechen.

Hinweis:
  • ZUnit-Funktion auf IBM® Developer for z/OS® wird durch IBM Test Accelerator for Early Development Testing ersetzt. Die Codeabdeckung für Unit-Tests ist nur mit diesem Produkt verfügbar. Weitere Informationen finden Sie unter Erfassen der Codeabdeckung für einen Unit-Testfall – Dokumentation zu „ IBM “.
  • Wenn auch ein Filter oder die Option filterlist angegeben wird, überschreibt dieser den bereitgestellten Zunit-Filter.