Wpływ testu dla częściowo zamapowanych repozytoriów TFVC w programie TFS/Azure DevOps Services
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Analiza wpływu testu (TIA) jest częścią zadania VSTest rozpoczynającego się od wersji 2 zadania. Ta funkcja ułatwia przyspieszenie cyklu DevOps, ułatwiając uruchamianie tylko odpowiednich testów dla kompilacji. W rzeczywistości kończy się uruchamianie testów, które mają wpływ na zmiany przychodzące, a nie cały zestaw testów. Aby uzyskać więcej informacji na temat analizy wpływu testów, zobacz Przyspieszanie testowania przy użyciu analizy wpływu testów (TIA).
Oprócz obsługi usług GitHub i Git w usłudze Azure DevOps usługa TIA obsługuje również usługę TFVC. W tym artykule opisano znane ograniczenie dotyczące TIA w potokach kompilacji/wydania opartych na serwerze TFVC i obejściu tego ograniczenia.
Problem z częściowo zamapowanych repozytoriów TFVC
Sposób działania TIA polega na zbieraniu danych na plikach, których dotyka metoda testowa podczas pierwszego uruchomienia, nazywanego również przebiegiem linii bazowej. Moduł zbierający zbierający te dane ma wgląd tylko w repozytorium wymienione na maszynie agenta. W przypadku potoków opartych na protokole TFVC możesz zarejestrować częściowe repozytoria. Rozważmy na przykład repozytorium, które ma następującą strukturę.
Teraz w potoku kompilacji/wydania zostanie wyświetlony kafelek Pobierz źródła w obszarze Proces , jak pokazano w poniższym przykładzie.
Wybierz pozycję Pobierz źródła i zobaczysz opcje w prawym bloku, aby częściowo zamapować repozytorium.
Jeśli zarejestrowasz całe repozytorium, jak pokazano w poprzednim przykładzie, TIA nadal działa prawidłowo, ale jeśli zarejestrowasz się częściowo, jak pokazano w poniższym przykładzie, TIA nie może odnaleźć testów, których dotyczy problem.
Gdy repozytorium TFVC jest częściowo wymienione, TIA nie może odnaleźć testów, których dotyczy problem, ponieważ moduł zbierający może zbierać zmiany tylko dla częściowo wymienionego repozytorium na agencie i nie ma widoczności całej ścieżki. Gdy kod zmienia przepływy z serwera, udostępnia całą ścieżkę, a próba dopasowania z mapowana ścieżką kończy się niepowodzeniem.
Rozwiązanie
Aby obejść ten problem, możesz zamapować częściowe repozytorium na pełną strukturę kodu na serwerze, tak aby pełna ścieżka plików w lokalnej rejestracji odpowiadała pełnej ścieżce serwera. W tym celu można określić ścieżkę lokalną zgodną ze ścieżką serwera, jak pokazano w poniższym przykładzie.
Dzięki temu ścieżka serwera jest zgodna ze ścieżką zbieraną przez moduł zbierający i testy, których dotyczy ten moduł, są poprawnie wyświetlane.