Testpåverkan för delvis mappade TFVC-lagringsplatser i TFS/Azure DevOps Services
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Test impact analysis (TIA) har varit en del av VSTest-aktiviteten som börjar med version 2 av aktiviteten. Den här funktionen hjälper dig att påskynda DevOps-cykeln genom att bara köra relevanta tester för en version. I praktiken körs tester som påverkas av inkommande ändringar och inte hela testpaketet. Mer information om analys av testpåverkan finns i Påskynda testning med hjälp av Test Impact Analysis (TIA).
Förutom att stödja GitHub och Git i Azure DevOps har TIA även stöd för TFVC. Den här artikeln beskriver en känd begränsning om TIA i bygg-/versionspipelines baserat på TFVC och ett arbete för att komma förbi den här begränsningen.
Problem med delvis mappade TFVC-lagringsplatser
TIA fungerar genom att samla in data på de filer som en testmetod berör under den första körningen, även kallad baslinjekörningen. Insamlaren som samlar in dessa data har endast synlighet för den registrerade lagringsplatsen på agentdatorn. Med TFVC-baserade pipelines får du ett alternativ för att registrera partiella lagringsplatser. Tänk dig till exempel en lagringsplats som har följande struktur.
I din bygg-/versionspipeline ser du nu panelen Hämta källor under Process som du ser i följande exempel.
Välj Hämta källor så visas alternativ på rätt blad för att delvis mappa lagringsplatsen.
Om du registrerar hela lagringsplatsen, som du ser i föregående exempel, fortsätter TIA att fungera bra, men om du registrerar dig delvis, vilket visas i följande exempel, kan TIA inte hitta de påverkade testerna.
När en TFVC-lagringsplats delvis är registrerad kan TIA inte hitta de påverkade testerna eftersom insamlaren endast kan samla in ändringar för den delvis registrerade lagringsplatsen på agenten och inte har insyn i hela sökvägen. När en kodändring flödar in från servern innehåller den hela sökvägen och matchningsförsöket med den mappade sökvägen misslyckas.
Lösning
Om du vill undvika det här problemet kan du mappa den partiella lagringsplatsen till den fullständiga kodstrukturen på servern, så att den fullständiga sökvägen för filerna i din lokala registrering matchar den fullständiga serversökvägen. För att göra detta kan du ange en lokal sökväg som matchar serversökvägen, som du ser i följande exempel.
Detta säkerställer att serversökvägen matchar sökvägen som samlas in av insamlaren och att de tester som påverkas visas korrekt.