Git-Metadaten bereitstellen
Steuern Sie, wie Axe Watcher Git-Informationen für Ihre Testläufe sammelt
Axe Watcher verknüpft Barrierefreiheitsergebnisse mit dem getesteten Git-Commit und ermöglicht es Ihnen, Probleme über Branches und Builds im Axe Developer Hub nachzuverfolgen. Standardmäßig sammelt Watcher diese Informationen automatisch über das lokale Git-Binary. Sie können die Sammlung auch vollständig deaktivieren oder die Metadaten selbst bereitstellen.
Automatische Sammlung (Standard)
Wenn keine git-Konfiguration bereitgestellt wird, erkennt Watcher automatisch den aktuellen Branch, die Commit-SHA, den Autor und andere Git-Felder aus dem lokalen Repository. Es ist keine zusätzliche Konfiguration erforderlich.
Wenn dies die erste erfolgreiche Sitzung des Projekts ist, wird das automatisch erkannte Repository zum gesperrten Repository des Projekts. Spätere Läufe gegen ein anderes Repository werden abgelehnt. Siehe Lauf abgelehnt: Datenstruktur oder Repository stimmt nicht mit dem Projekt überein.
Deaktivierung der Git-Sammlung
Wenn in Ihrer Umgebung kein Git-Binary vorhanden ist oder wenn Sie keine Git-Daten mit einem Testlauf verknüpfen möchten, können Sie die Sammlung vollständig deaktivieren.
Wenn das Projekt bereits auf Git festgelegt ist, führt das Deaktivieren der Sammlung nicht mehr zu einer Gitless-Sitzung: Der Lauf wird stattdessen abgelehnt. Senden Sie Gitless-Läufe an ein separates, Gitless-gesperrtes Projekt.
(JavaScript/TypeScript) Setzen Sie die git-Eigenschaft auf false in Ihrem AxeConfiguration:
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_DEVELOPER_HUB_PROJECT_ID,
git: false
}(Java) Rufen Sie setGit(false) auf Ihrem AxeWatcherOptions auf:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
.setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
.setGit(false);Bereitstellung expliziter Metadaten
Einige CI-Einrichtungen führen Tests in einem speziellen QA-Repository durch, das vom getesteten Repository getrennt ist. In diesen Fällen würde die automatische Erkennung Metadaten aus dem QA-Repository anstatt aus dem Code-Repository sammeln, was zu irreführenden Ergebnissen im Axe Developer Hub führt. Sie müssen die korrekten Metadaten explizit bereitstellen.
Explizite Metadaten sind auch nützlich, wenn die automatische Erkennung unzuverlässig ist, beispielsweise bei flachen Klonen oder wenn sich das Repository in einem separaten HEAD-Zustand befindet.
Wenn explizite Metadaten bereitgestellt werden, wird die automatische Erkennung für diesen Testlauf vollständig übersprungen. Jedes Feld, das Sie weglassen, wird als null übertragen.
Die folgenden Felder sind verfügbar.
branch, commitSha und url sind die gitvollen Felder. Falls das Projekt noch nicht auf eine Datenstruktur festgelegt ist, wird eine Sitzung ohne alle drei als Gitless protokolliert und das Projekt wird fortan auf Gitless festgelegt. Sobald ein Projekt auf Git festgelegt ist, wird eine Sitzung, der eines der drei fehlt, stattdessen bei der Aufnahme abgelehnt: Die Ergebnisse werden nicht gespeichert. Sehen Sie Durchlauf abgelehnt: Datenstruktur oder Repository stimmt nicht mit dem Projekt überein für die Ablehnungsnachricht und wie diese zu beheben ist. Die restlichen Felder sind optional.
| Feld (JavaScript/TypeScript) | Methode (Java) | Vollständiges Git | Beschreibung |
|---|---|---|---|
branch |
setBranch() |
ja | Aktueller Branch-Name |
commitAuthor |
setCommitAuthor() |
nein | Anzeigename des Autors. Wenn weggelassen, erscheint der Autor im Axe Developer Hub als nicht verfügbar. |
commitEmail |
setCommitEmail() |
nein | E-Mail-Adresse des Autors. |
commitMessage |
setCommitMessage() |
nein | Volle Commit-Nachricht. Wenn weggelassen, erscheint die Commit-Nachricht im Axe Developer Hub als nicht verfügbar. |
commitSha |
setCommitSha() |
ja | Vollständiger oder abgekürzter Commit-Hash |
defaultBranch |
setDefaultBranch() |
nein | Standard-Zweigname (z. B. main). Ohne dieses Feld kann Axe Developer Hub nicht identifizieren, welcher Zweig der Standardzweig ist, sodass Vergleiche von Feature-Zweigen mit dem Standardzweig nicht verfügbar sein werden. |
isDirty |
setIsDirty() |
nein | true, wenn es ungespeicherte Änderungen gibt |
tag |
setTag() |
nein | Aktuelles Tag (z. B. v1.2.3) |
url |
setUrl() |
ja | Remote-URL des Repositories |
(JavaScript/TypeScript) Übergeben Sie ein GitConfig-Objekt an die git-Eigenschaft in Ihrem AxeConfiguration. Die spezifischen Namen der Umgebungsvariablen hängen von Ihrer CI-Plattform ab:
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_DEVELOPER_HUB_PROJECT_ID,
git: {
commitSha: process.env.GIT_COMMIT,
branch: process.env.GIT_BRANCH,
url: process.env.GIT_URL,
commitAuthor: process.env.GIT_AUTHOR_NAME,
commitEmail: process.env.GIT_AUTHOR_EMAIL,
commitMessage: process.env.GIT_COMMIT_MESSAGE,
defaultBranch: 'main'
}
}(Java) Erstellen Sie eine AxeWatcherGitInfo-Instanz und übergeben Sie sie an setGitInfo() auf Ihrem AxeWatcherOptions:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
.setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
.setGitInfo(new AxeWatcherGitInfo()
.setCommitSha(System.getenv("GIT_COMMIT"))
.setBranch(System.getenv("GIT_BRANCH"))
.setUrl(System.getenv("GIT_URL"))
.setCommitAuthor(System.getenv("GIT_AUTHOR_NAME"))
.setCommitEmail(System.getenv("GIT_AUTHOR_EMAIL"))
.setCommitMessage(System.getenv("GIT_COMMIT_MESSAGE"))
.setDefaultBranch("main"));Lauf abgelehnt: Datenstruktur oder Repository stimmt nicht mit dem Projekt überein
Sobald ein Projekt seine erste erfolgreiche Sitzung aufgenommen hat, werden seine Datenstruktur (Git oder Gitless) und, für Git-Projekte, sein Repository gesperrt. Ein Lauf, der nicht mit der Sperre übereinstimmt, wird bei der Aufnahme abgelehnt und die Ergebnisse werden nicht gespeichert.
Häufige Ursachen:
- Ein zweites Repository oder ein Testsuite zeigt auf dasselbe Projekt. Senden Sie es stattdessen an sein eigenes Projekt, anstatt an das, das bereits an ein anderes Repository gebunden ist.
- Ein flacher Klon, ein losgelöster HEAD-Zustand oder ein fehlender
originRemote entfernt die Repository-URL, den Branch oder den Commit-SHA und lässt einen Git-Lauf Git-los erscheinen. Siehe Axe Watcher in Continuous Integration (CI)-Umgebungen für CI-spezifische Anleitungen. - Die Git-Datensammlung wurde in einem Projekt deaktiviert, das bereits an Git gebunden ist. Das Senden eines Laufs mit
git: falsekonvertiert das Projekt nicht mehr zu Git-los; der Lauf wird abgelehnt. Senden Sie Git-lose Läufe stattdessen an ein separates, ausschließlich Git-los gesperrtes Projekt.
Siehe Lauf abgelehnt in der Fehlerbehebung für die genaue Fehlermeldung der Ablehnung.
Siehe auch
- (JavaScript/TypeScript)
AxeConfiguration.git - (Java)
AxeWatcherOptions.setGitInfo() - (Java)
AxeWatcherGitInfo - Verwendung von Axe Watcher in Continuous Integration (CI) Umgebungen
