Share via


Esecuzione di test con Ricaricamento rapido

Le esecuzioni di test in Visual Studio implicano la compilazione del progetto per aggiornare i file binari su disco prima di usare la piattaforma di test per eseguire i test. Il tempo di compilazione all'interno di Visual Studio può variare a seconda del tipo di modifiche apportate al codice. Per le soluzioni di dimensioni maggiori, le compilazioni possono essere la parte più costosa dell'esecuzione del test. In Visual Studio 2022 e versioni successive, l'esecuzione di test con ricaricamento rapido può essere abilitata per velocizzare l'esecuzione dei test ignorando le compilazioni per gli scenari supportati.

Che cos'è supportato?

  • Progetti C# e VB destinati a .NET 6.0 e versioni successive
  • Progetti di test compilati per la configurazione DEBUG
  • Visual Studio 2022 e versioni successive

Abilitare l'esecuzione di test con Ricaricamento rapido

Abilitare questa funzionalità scegliendo Opzioni> di test>"(Sperimentale) Abilita esecuzioni di test Ricaricamento rapido ed per progetti di test C# e VB destinati a .NET 6 e versioni successive". 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

Perché è sperimentale?

Si tratta di un nuovo modo per testare l'esecuzione in cui viene modificato un percorso ampiamente usato per convalidare il codice. Ci aspettiamo anche che l'esperienza utente intorno a questa funzionalità cambi quando riceviamo più feedback dagli utenti. Per questi due motivi, questa funzionalità è stata attualmente etichettata come "sperimentale".

Funzionamento

Dopo aver abilitato l'opzione, Esplora test userà automaticamente l'esecuzione dei test con ricaricamento rapido, quando possibile. Se non è possibile ricaricare a caldo, eseguirà il fallback al comportamento regolare della compilazione e dell'esecuzione di test. In quanto utente che esegue test, non è necessario apportare modifiche al flusso di lavoro, ovvero continuare a modificare il codice ed eseguire i test.

In background, viene usata la stessa infrastruttura di modifica e continuazione esistente nell'esperienza di Ricaricamento rapido appena rilasciata per la modifica del codice C#/VB in fase di esecuzione per determinare le modifiche apportate. Per questo motivo, il ricaricamento rapido viene eseguito solo quando non sono presenti "modifiche scortesi", nel qual caso viene eseguito il fallback alla compilazione dei test prima di eseguirli. Per altre informazioni sulle modifiche supportate, vedere la documentazione su Modifica e continuazione

Quanto sarà più veloce l'esecuzione del test?

Ci sono molte variabili che entra in gioco quando si stima quanto tempo questa funzionalità salverà. Ad esempio:

  • Durata della compilazione del progetto.
  • Tipo di modifica apportata.
  • La dimensione del file è la posizione in cui è stata apportata la modifica.
  • Posizione in cui è stata apportata la modifica (se si tratta di un progetto foglia o meno).

In definitiva, i miglioramenti della velocità saranno direttamente correlati al tempo di compilazione che si sarebbe verificato in tale esecuzione di test specifica.

Note

  • La prima esecuzione del test dopo l'abilitazione dell'opzione o l'apertura di Visual Studio comporta una compilazione del progetto.
  • I file nell'editor potrebbero non essere salvati quando vengono eseguiti i test. Per risolvere questi problemi e prima di eseguire l'archiviazione, assicurarsi di eseguire una compilazione completa (CTRL+MAIUSC+B).
  • I file binari sul disco non vengono aggiornati quando si verifica l'esecuzione dei test ricaricati a caldo.
  • L'esecuzione di test ricaricata a caldo non funziona con "Test>Esegui tutti i test", "Esegui tutti i test in visualizzazione" in Esplora test, né funziona con Esegui tutti i test dal nodo della soluzione in Esplora soluzioni. La funzionalità non funziona con questi comandi perché attualmente garantiscono la compilazione dell'intera soluzione.
  • Quando i test con framework di destinazione non supportati (inferiori a .NET 6.0) vengono eseguiti, viene eseguita una compilazione di progetto.
  • Se vengono visualizzate incoerenze tra gli elementi presenti su disco e quello visualizzato in Esplora test, prendere in considerazione una compilazione di soluzione/progetto usando CTRL+MAIUSC+B e quindi eseguire i test. Qualsiasi compilazione esplicita sostituisce i risultati del test di ricaricamento rapido con i normali risultati del test di compilazione completa.

Problemi noti

  • L'esecuzione di test con ricaricamento rapido non si verifica negli scenari seguenti:
    • Code coverage
    • Live Unit Testing
    • Raccolta informazioni utente
    • Debug
  • Le tracce dello stack potrebbero non essere leggibili con la presenza di token illeggibili. Questo problema viene monitorato qui ed è pianificato per una correzione in .NET 7.0
    • La soluzione alternativa consigliata in questo caso consiste nel compilare il progetto ed eseguire nuovamente il test.

I commenti e i suggerimenti sono importanti

Come indicato in precedenza, per completare questa funzionalità sperimentale è necessario inviare commenti e suggerimenti. Se si ha un suggerimento per il modo in cui l'esperienza deve essere o si verificano problemi, è necessario dedicare qualche minuto a segnalare problemi a Microsoft. Solo con il feedback degli utenti è possibile assicurarsi che i problemi critici vengano risolti e che le decisioni future siano classificate in ordine di priorità in base all'input.

Per raggiungere Microsoft, usare il meccanismo di feedback di Visual Studio.