Wykonywanie testów za pomocą Przeładowywanie na gorąco

Przebiegi testów w programie Visual Studio obejmują kompilowanie projektu w celu zaktualizowania plików binarnych na dysku przed użyciem platformy testowej do wykonywania testów. Czas kompilacji w programie Visual Studio może się różnić w zależności od rodzaju zmian wprowadzonych w kodzie. W przypadku większych rozwiązań kompilacje mogą być najdroższą częścią przebiegu testu. W programie Visual Studio 2022 lub nowszym można włączyć wykonywanie testów z ponownym ładowaniem na gorąco, aby przyspieszyć wykonywanie testów, pomijając kompilacje dla obsługiwanych scenariuszy.

Co jest obsługiwane?

  • Projekty języka C# i VB przeznaczone dla platformy .NET 6.0 i nowszych
  • Projekty testowe utworzone na potrzeby konfiguracji DEBUG
  • Visual Studio 2022 i nowsze

Włączanie wykonywania testów przy użyciu Przeładowywanie na gorąco

Włącz tę funkcję, wybierając pozycję Opcje> testu>"(Eksperymentalne) Włącz Przeładowywanie na gorąco ed przebiegi testów dla projektów testowych języka C# i VB przeznaczonych dla platformy .NET 6 i nowszych". Screenshot of the Enable Hot Reloaded Test Runs button on the Visual Studio Test Options page. When this is selected, tests execution will use hot reload for supported scenarios

Dlaczego jest to eksperymentalne?

Jest to nowy sposób wykonywania testów, w którym zmieniamy powszechnie używaną ścieżkę sprawdzania poprawności kodu. Oczekujemy również, że środowisko użytkownika wokół tej funkcji zmieni się, ponieważ otrzymujemy więcej opinii od użytkowników. Z tych dwóch powodów obecnie oznaczyliśmy tę funkcję jako "eksperymentalną".

Jak to działa

Po włączeniu opcji Eksplorator testów automatycznie będzie używać wykonywania testów z przeładowywaniem na gorąco, gdy jest to możliwe. Jeśli ponowne ładowanie na gorąco nie jest możliwe, powrót do regularnego zachowania tworzenia i uruchamiania testów. Jako użytkownik uruchamiający testy nie trzeba wprowadzać żadnych zmian w przepływie pracy (czyli kontynuować edytowanie kodu i uruchamianie testów).

Pod maską używamy tej samej infrastruktury Edytuj i Kontynuuj, która istnieje w nowo wydanym środowisku Przeładowywanie na gorąco do edytowania kodu C#/VB w czasie wykonywania w celu określenia wprowadzonych zmian. Z tego powodu przeładujemy ponownie tylko wtedy, gdy nie ma "niegrzecznych edycji", w takim przypadku wracamy do kompilowania testów przed ich wykonaniem. Aby uzyskać więcej informacji na temat obsługiwanych edycji, przeczytaj dokumentację Edytowanie i kontynuowanie

Ile szybsze będzie wykonanie testu?

Istnieje wiele zmiennych, które wchodzą w grę podczas szacowania, ile czasu ta funkcja zaoszczędzi. Na przykład:

  • Jak długo trwa kompilacja projektu.
  • Jaki rodzaj edycji został wykonany.
  • Jak duży jest plik, w którym dokonano edycji.
  • Gdzie dokonano edycji (jeśli był to projekt liścia, czy nie).

Ostatecznie ulepszenia szybkości będą bezpośrednio związane z czasem kompilacji, który miałby miejsce w tym konkretnym przebiegu testu.

Uwagi

  • Pierwszy przebieg testu po włączeniu opcji lub otwarciu programu Visual Studio spowoduje naliczenie kompilacji projektu.
  • Pliki w edytorze mogą nie być zapisywane po uruchomieniu testów. Aby rozwiązać te problemy i przed zaewidencjonowanie, upewnij się, że wykonasz pełną kompilację (Ctrl+Shift+B).
  • Pliki binarne na dysku nie są aktualizowane po ponownym załadowaniu ponownego wykonania testu.
  • Przeładowane na gorąco wykonywanie testu nie działa z poleceniem "Uruchom>wszystkie testy", "Uruchom wszystkie testy w widoku" w Eksploratorze testów ani nie działa z poleceniem Uruchom wszystkie testy z węzła rozwiązania w Eksplorator rozwiązań. Funkcja nie działa z tymi poleceniami, ponieważ obecnie gwarantuje utworzenie całego rozwiązania.
  • Gdy testy z nieobsługiwanymi platformami docelowymi (niższym niż .NET 6.0) są uruchamiane, następuje kompilacja projektu.
  • Jeśli zobaczysz jakiekolwiek niespójności między elementami na dysku i tym, co pokazuje Eksplorator testów, rozważ kompilację rozwiązania/projektu przy użyciu kombinacji klawiszy Ctrl+Shift+B , a następnie uruchom testy. Każda jawna kompilacja zastępuje wyniki testu przeładowywania na gorąco zwykłymi wynikami testu pełnej kompilacji.

Znane problemy

  • Wykonywanie testu za pomocą przeładowywania na gorąco nie występuje w następujących scenariuszach:
    • Pokrycie kodu
    • Live Unit Testing
    • Profilowanie
    • Debugowanie
  • Ślady stosu mogą nie być czytelne z obecnością nieczytelnych tokenów. Ten problem jest śledzony tutaj i jest planowany na poprawkę na platformie .NET 7.0
    • Zalecanym obejściem w tym przypadku jest skompilowanie projektu i ponowne uruchomienie testu.

Twoja opinia ma znaczenie

Jak wspomniano wcześniej, aby ta funkcja eksperymentalna została ukończona, wymagamy twojej opinii. Jeśli masz sugestię dotyczącą tego, jak powinno być środowisko lub napotkasz jakiekolwiek problemy, pośmiń chwilę, aby zgłosić nam problemy. Tylko w przypadku opinii możemy upewnić się, że krytyczne problemy są rozwiązywane, a przyszłe decyzje są priorytetowe na podstawie Twoich danych wejściowych.

Aby skontaktować się z nami, skorzystaj z mechanizmu opinii programu Visual Studio.