Ricaricamento a Caldo

Questa funzionalità richiede il pacchetto NuGet Microsoft.Testing.Extensions.HotReload .

Suggerimento

Quando si usa Microsoft.Testing.Platform.MSBuild (incluso transitivamente da MSTest, NUnit e runner xUnit), questa estensione viene registrata automaticamente quando si installa il pacchetto NuGet, senza necessità di modifiche al codice. La registrazione manuale specificata in questo articolo è necessaria solo se il punto di ingresso generato automaticamente è stato disabilitato impostando <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Registrazione manuale

var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddHotReloadProvider();

Ricarica immediata

Hot reload consente di modificare il codice sorgente gestito dell'app mentre l'applicazione è in esecuzione, senza la necessità di sospendere o raggiungere manualmente un punto di interruzione. È sufficiente apportare una modifica supportata durante l'esecuzione dell'app e selezionare il pulsante Applicazione delle modifiche al codice in Visual Studio per applicare le modifiche.

Annotazioni

La versione corrente è limitata al supporto hot reload solo in modalità "console". Attualmente non è disponibile alcun supporto per l'hot reload in Esplora Test per Visual Studio o Visual Studio Code.

Annotazioni

Il pacchetto viene fornito con la licenza restrittiva degli strumenti MTP. La licenza completa è disponibile in https://www.nuget.org/packages/Microsoft.Testing.Extensions.HotReload/1.0.0/License.

È possibile abilitare il supporto hot reload facilmente impostando la variabile di ambiente TESTINGPLATFORM_HOTRELOAD_ENABLED su "1".

Per i progetti in stile SDK, è possibile aggiungere "TESTINGPLATFORM_HOTRELOAD_ENABLED": "1" nella sezione environmentVariables del file di launchSettings.json. Il frammento di codice seguente mostra un file di esempio:

{
  "profiles": {
    "Contoso.MyTests": {
      "commandName": "Project",
      "environmentVariables": {
        "TESTINGPLATFORM_HOTRELOAD_ENABLED": "1"
      }
    }
  }
}