2010-07-29 19 views
12

Ho una DLL .NET 4 per la quale sto riscontrando problemi nella generazione dei test delle unità. Sto usando VS 2010 Standard. Ogni altro progetto nella soluzione genererà stub di test unitari per le classi. Per gli altri assembly, posso accedere al codice esistente, fare clic con il tasto destro del mouse sul nome della classe e selezionare "Create Unit Test". Ottengo la finestra di selezione che segue bene.VS 2010 Errore durante la generazione dei test delle unità

L'unico assembly su cui ho realmente bisogno di ottenere una copertura non genererà gli stub di test utilizzando la stessa metodologia sopra menzionata. Vado a una classe nel progetto/montaggio, fare clic destro, selezionare "Genera unit test", e sto incontrato con il seguente errore:

Unit Test Generation Error: The follow error was encountered while reading module 'xx.Core': Could not resolve type reference: [System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx]System.Web.Routing.RouteValueDictionary

Per quanto posso dire, non ci sono riferimenti diretti nel progetto alla versione 2.0 framework di System.Web menzionata nel messaggio di errore. Ricerca nella directory che contiene il progetto e i file .CS con uno strumento chiamato grepWIN per vedere se il testo per quel riferimento esiste in qualsiasi file produce risultati pari a zero. È anche possibile fare riferimento sia alla versione 2.0 che alla 4.0 della dll system.web allo stesso tempo, e in tal caso, perché dovresti farlo?

Qualche idea su come sbarazzarsi di questo messaggio di errore in modo da poter debellare correttamente alcuni test di unità?

+1

Ho la stessa esperienza ma purtroppo nessuna risposta :-( –

risposta

0

Si sta utilizzando NUNIT per il test dell'unità? Se è così, per impostazione predefinita Nunit punta a .Net 2.0. È necessario apportare le modifiche appropriate al file nunit.exe.config.

Per favore, in Esplora risorse, accedere a C: \ WINDOWS \ Microsoft.NET \ Framework. Lì vedrai un certo numero di cartelle con nomi di questo tipo: v1.0.xxxxx, v1.1.xxxxx, ..., v4.0.xxxxx. Annotare il nome esatto della cartella v4.0.xxxxx.

Con un editor di testo, aprire il file nunit.exe.config, che si trova in questa cartella: C: \ Programmi \ NUnit 2.5.2 \ bin \ net-2.0.

Sotto aggiuntivo:

<startup> <requiredRuntime version="v4.0.xxxxx" /> </startup> 

[sostituire xxxxx dai numeri corretti che si è preso]

e sotto aggiuntivo:

<loadFromRemoteSources enabled="true" /> 

La modifica di cui sopra ha funzionato per me. Speriamo che altre persone si trovino di fronte a questo problema.

+2

OP utilizza la capacità di generazione di test VS2010 dovrebbe creare stub per test di unità, insieme a file, classe e tutti gli altri impianti idraulici. classe in modo che i test unitari possano essere implementati con NUnit Framework. – GregC

1

Ho avuto lo stesso problema, con ObservableCollection.

La mia "soluzione" consisteva nell'aggiornare tutti i progetti di riferimento ei loro progetti di riferimento a .NET 4.0. Poi ha funzionato ... Comunque sembra un po 'strano e avrei potuto fare qualcos'altro che ha fatto sparire il problema.

1

Recentemente ho avuto un problema simile con uno dei miei progetti. Il problema era che dopo aver costruito la mia libreria ho rinominato il file dll. Il mio progetto di riferimento alla dll è ancora ben realizzato, tuttavia ho ricevuto un errore simile durante la generazione dei test unitari fino a quando non ho rinominato la dll al suo nome originale quando è stata creata.

Problemi correlati