Proporcionar metadatos de Git
Controla cómo Axe Watcher recopila la información de Git para tus ejecuciones de prueba
Axe Watcher vincula los resultados de accesibilidad al commit de Git que se ha probado, permitiéndote rastrear problemas a través de ramas y compilaciones en Axe Developer Hub. Por defecto, Watcher recopila esta información automáticamente usando el binario local de Git. También puedes desactivar la recopilación por completo o suministrar los metadatos tú mismo.
Recopilación automática (por defecto)
Cuando no se proporciona la configuración de git, Watcher detecta automáticamente la rama actual, el SHA del commit, el autor y otros campos de Git desde el repositorio local. No se requiere configuración adicional.
Si esta es la primera sesión exitosa del proyecto, el repositorio detectado automáticamente se convierte en el repositorio bloqueado del proyecto. Las ejecuciones posteriores contra un repositorio diferente son rechazadas. Consulte Ejecución Rechazada: La Forma de los Datos o el Repositorio No Coincide con el Proyecto.
Desactivación de la recopilación de Git
Si tu entorno no tiene un binario de Git, o si no deseas que los datos de Git estén asociados con una ejecución de prueba, puedes desactivar la recopilación por completo.
Si el proyecto ya está bloqueado a Git, desactivar la recopilación ya no produce una sesión sin Git: la ejecución se rechaza en su lugar. Envíe las ejecuciones sin Git a un proyecto separado que esté bloqueado sin Git.
(JavaScript/TypeScript) Establece la propiedad git en false en tu AxeConfiguration:
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_DEVELOPER_HUB_PROJECT_ID,
git: false
}(Java) Llama a setGit(false) en tu AxeWatcherOptions:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
.setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
.setGit(false);Proporcionar metadatos explícitos
Algunas configuraciones de CI ejecutan pruebas en un repositorio de control de calidad dedicado que está separado del repositorio bajo prueba. En esos casos, la detección automática recopilaría metadatos del repositorio de control de calidad en lugar del repositorio de código, produciendo resultados engañosos en Axe Developer Hub. Debes proporcionar los metadatos correctos explícitamente.
Los metadatos explícitos también son útiles cuando la detección automática es poco fiable, por ejemplo, en clones superficiales o cuando el repositorio está en un estado de HEAD separado.
Cuando se proporciona metadata explícita, se omite completamente la autodetección para esa ejecución de prueba. Cualquier campo que omitas se transmite como null.
Los siguientes campos están disponibles.
branch, commitSha y url son los campos gitful. Si el proyecto aún no se ha bloqueado a una forma de datos, una sesión enviada sin los tres se registra como Gitless, y el proyecto se bloquea a Gitless en adelante. Una vez que un proyecto está bloqueado a Git, una sesión que falte cualquiera de los tres campos es rechazada en la ingestión: los resultados no se guardan. Véase Ejecución rechazada: la forma de datos o el repositorio no coincide con el proyecto para el mensaje de rechazo y cómo resolverlo. Los campos restantes son opcionales.
| Campo (JavaScript/TypeScript) | Método (Java) | Completo de Git | Descripción |
|---|---|---|---|
branch |
setBranch() |
sí | Nombre de la rama actual |
commitAuthor |
setCommitAuthor() |
no | Nombre para mostrar del autor. Si no se proporciona, el autor aparecerá como no disponible en Axe Developer Hub. |
commitEmail |
setCommitEmail() |
no | Dirección de correo electrónico del autor. |
commitMessage |
setCommitMessage() |
no | Mensaje completo del commit. Si no se proporciona, el mensaje del commit aparecerá como no disponible en Axe Developer Hub. |
commitSha |
setCommitSha() |
sí | Hash completo o abreviado del commit |
defaultBranch |
setDefaultBranch() |
no | Nombre de la rama predeterminada (por ejemplo, main). Sin este campo, Axe Developer Hub no puede identificar cuál es la rama predeterminada, por lo que no estarán disponibles las comparaciones de ramas de características contra la rama predeterminada. |
isDirty |
setIsDirty() |
no | true si hay cambios no confirmados |
tag |
setTag() |
no | Etiqueta actual (por ejemplo, v1.2.3) |
url |
setUrl() |
sí | URL remota del repositorio |
(JavaScript/TypeScript) Pasa un objeto GitConfig a la propiedad git en tu AxeConfiguration. Los nombres específicos de las variables de entorno dependen de tu plataforma CI:
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) Crea una instancia de AxeWatcherGitInfo y pásala a setGitInfo() en tu 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"));Ejecución Rechazada: La Forma de los Datos o el Repositorio No Coincide con el Proyecto
Una vez que un proyecto ha ingerido su primera sesión exitosa, su forma de datos (con Git o sin Git) y, para los proyectos con Git, su repositorio, quedan bloqueados. Una ejecución que no coincida con el bloqueo se rechaza en la ingestión, y no se guardan los resultados.
Causas comunes:
- Un segundo repositorio o suite de pruebas está apuntado al mismo proyecto. Envíelo a su propio proyecto en lugar de al que ya está bloqueado a un repositorio diferente.
- Un clon superficial, un estado HEAD separado, o un
originremoto faltante está eliminando la URL del repositorio, la rama, o el SHA del commit, haciendo que una ejecución de Git parezca sin Git. Consulte Axe Watcher en entornos de integración continua (CI) para obtener orientación específica de CI. - La recopilación de datos de Git fue desactivada en un proyecto ya bloqueado a Git. Enviar una ejecución con
git: falseya no convierte el proyecto a sin Git; la ejecución es rechazada. Envíe ejecuciones sin Git a un proyecto separado, bloqueado sin Git, en su lugar.
Consulte Ejecución Rechazada en Solución de Problemas para ver el mensaje exacto de rechazo.
Consulte también
- (JavaScript/TypeScript)
AxeConfiguration.git - (Java)
AxeWatcherOptions.setGitInfo() - (Java)
AxeWatcherGitInfo - Usar Axe Watcher en entornos de Integración Continua (CI)
