Risoluzione dei problemi relativi a test generici
Aggiornamento: novembre 2007
Quando si eseguono test generici, è possibile che si verifichi l'errore seguente: la raccolta di dati di code coverage non riesce quando si esegue un test generico in una piattaforma a 64 bit. Per risolvere l'errore, utilizzare le informazioni della sezione seguente, Come ovviare alla limitazione dei 32 bit.
Come ovviare alla limitazione dei 32 bit
La strumentazione di tipo code coverage funziona solo in modalità a 32 bit, non in modalità a 64 bit, in quanto un assembly può essere caricato in modalità a 32 bit solo dopo che è stato instrumentato per il code coverage.
Nota: |
---|
Questa limitazione non si applica quando gli unit test vengono eseguiti in un computer a 64 bit, se non vengono raccolti dati di code coverage, perché VSTestHost.exe, il modulo di test che carica la libreria di classi, viene eseguito in un processo a 32 bit. |
Per un test generico, l'applicazione di cui è stato eseguito il wrapping viene generata in base a "Any CPU", che in un computer a 64 bit viene eseguita come processo a 64 bit. Quando questo processo a 64 bit tenta di caricare un assembly a 32 bit, si verifica un errore. Per risolvere il problema, utilizzare uno dei metodi seguenti.
Utilizzare il metodo seguente se il test generico esegue direttamente il wrapping del file binario in cui è stato compilato il codice di produzione:
- Modificare la configurazione della soluzione in x86
Utilizzare uno dei due metodi seguenti se è presente un livello tra il test generico e il file binario del codice di produzione, ossia se il test generico esegue il wrapping di un'applicazione intermedia come test harness. Questo test harness, a sua volta, esegue il codice di produzione sottoposto a test.
Instrumentare l'applicazione che carica il file binario del codice di produzione
Modificare le impostazioni di generazione per l'applicazione che carica il file binario del codice di produzione
Modificare la configurazione della soluzione in x86
Modificare la configurazione della soluzione da "Any CPU" a "x86."
Per modificare la configurazione della soluzione
Fare clic con il pulsante destro del mouse sulla soluzione e quindi scegliere Proprietà.
Verrà visualizzata la finestra di dialogo delle pagine delle proprietà della soluzione.
In Proprietà di configurazione fare clic su Configurazione.
Fare clic su Gestione configurazione.
Verrà visualizzata la finestra di dialogo Gestione configurazione.
In Piattaforma soluzione attiva fare clic su Nuovo.
Verrà visualizzata la finestra di dialogo Nuova piattaforma soluzione.
In Digitare o selezionare la nuova piattaforma fare clic su x86.
Nella finestra di dialogo Nuova piattaforma soluzione scegliere OK.
Nella finestra di dialogo in cui si chiede se salvare le modifiche scegliere Sì.
Nella finestra di dialogo Gestione configurazione, in Piattaforma soluzione attiva, assicurarsi che sia selezionata l'opzione x86, quindi fare clic su Chiudi.
Nella finestra di dialogo delle pagine delle proprietà della soluzione scegliere OK.
Instrumentare l'applicazione che carica il file binario del codice di produzione
Utilizzare questa procedura per instrumentare un'applicazione intermedia, o test harness, di cui il test generico esegue il wrapping. Questa applicazione intermedia esegue il codice che si desidera testare. L'applicazione viene in questo modo eseguita in modalità a 32 bit.
Nota: |
---|
Questa procedura funzionerà solo se il file di simboli è disponibile per il file da instrumentare. |
Per specificare il file eseguibile per la strumentazione
In Visual Studio aprire il progetto di test che contiene il test generico.
In Esplora soluzioni aprire la cartella Elementi di soluzione.
Nella cartella Elementi di soluzione fare doppio clic sul file con estensione testrunconfig.
Verrà visualizzata la finestra di dialogo di configurazione dell'esecuzione dei test.
Fare clic su Code Coverage.
In Selezionare gli elementi da instrumentare selezionare l'applicazione intermedia che esegue il file binario del codice di produzione.
Nota: Se il file binario dell'applicazione intermedia non è visualizzato in Selezionare gli elementi da instrumentare, fare clic su Aggiungi assembly. Nella finestra di dialogo Scelta assembly per la strumentazione specificare il file e quindi fare clic su Apri.
Scegliere Applica e quindi Chiudi.
Modificare le impostazioni di generazione per l'applicazione che carica il file binario del codice di produzione
Utilizzare questa procedura per instrumentare qualsiasi applicazione intermedia, o test harness, di cui il test generico esegue il wrapping. Questa applicazione intermedia esegue il codice che si desidera testare.
In questa procedura si modificano le impostazioni dell'applicazione intermedia affinché venga generata per la piattaforma x86.
Nota: |
---|
È possibile eseguire questa operazione solo se l'applicazione di cui è stato eseguito il wrapping viene generata da un progetto della soluzione. |
Per modificare le impostazioni di generazione per l'applicazione di cui è stato eseguito il wrapping
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto dal quale è generata l'applicazione intermedia, quindi scegliere Proprietà.
Verrà visualizzata una pagina di proprietà per il progetto.
Fare clic sulla scheda Genera.
Per Piattaforma di destinazione, specificare x86.
Scegliere Salva elementi selezionati dal menu File.
Vedere anche
Attività
Procedura: raccogliere dati di code coverage con test generici