Impacto en las pruebas para repositorios de TFVC asignados parcialmente en TFS/Azure DevOps Services
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
El Análisis de impacto en las pruebas (TIA) ha formado parte de la tarea VSTest a partir de la versión 2 de la tarea. Esta característica ayuda a acelerar el ciclo de DevOps al permitirle ejecutar solo las pruebas pertinentes para una compilación. De hecho, terminará ejecutando pruebas a las que afectan los cambios entrantes y no todo el conjunto de pruebas. Para obtener más información sobre el Análisis de impacto en las pruebas, vea Aceleración de las pruebas mediante el Análisis de impacto en las pruebas (TIA).
Además de admitir GitHub y Git en Azure DevOps, TIA también es compatible con TFVC. En este artículo se describe una limitación conocida sobre TIA en canalizaciones de compilación y versión basadas en TFVC y una solución alternativa para superar esta limitación.
Problema con repositorios de TFVC asignados parcialmente
La forma de funcionar de TIA consiste en recopilar datos de los archivos que un método de prueba toca durante su primera ejecución, también denominada ejecución de línea base. El recopilador que recopila estos datos solo tiene visibilidad del repositorio inscrito en la máquina del agente. Con las canalizaciones basadas en TFVC, tendrá la opción de inscribir repositorios parciales. Por ejemplo, imagínese un repositorio que tenga la siguiente estructura.
Ahora, en la canalización de compilación o versión verá el icono Obtener orígenes en Proceso, tal como se muestra en el ejemplo siguiente.
Seleccione Obtener orígenes; verá opciones en la hoja derecha para asignar parcialmente el repositorio.
Si inscribe todo el repositorio, tal como se muestra en el ejemplo anterior, TIA sigue funcionando bien, pero si se inscribe parcialmente, tal como se muestra en el ejemplo siguiente, TIA no encuentra las pruebas afectadas.
Cuando se inscribe parcialmente un repositorio de TFVC, TIA no encuentra las pruebas afectadas porque el recopilador puede recopilar cambios solo para el repositorio inscrito parcialmente en el agente y no tiene visibilidad de toda la ruta de acceso. Cuando un cambio en el código fluye desde el servidor, proporciona toda la ruta de acceso y el intento de coincidir con la ruta de acceso asignada produce un error.
Solución alternativa
Para solucionar este problema, puede asignar el repositorio parcial a la estructura de código completa en el servidor, de modo que la ruta de acceso completa de los archivos de la inscripción local coincida con la ruta de acceso completa del servidor. Para ello, puede especificar una ruta de acceso local que coincida con la ruta de acceso del servidor, tal como se muestra en el ejemplo siguiente.
Esta acción garantiza que la ruta de acceso del servidor coincida con la ruta de acceso que recopila el recopilador y las pruebas afectadas se muestran correctamente.