Domanda Errore VS 2010 Generazione dei test delle unità


Ho una NET 4 DLL per la quale sto avendo problemi a generare test unitari. 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.

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

Errore di generazione del test dell'unità: durante la lettura del modulo 'xx.Core' è stato riscontrato l'errore seguente: Impossibile risolvere il riferimento del tipo: [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 framework 2.0 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 unitari?


12
2017-07-29 12:30


origine


risposte:


Ho avuto lo stesso problema, con ObservableCollection.

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


1
2017-12-07 09:52



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.


1
2017-07-25 12:29



Stai usando 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.

Potresti, per favore, in Windows Explorer, 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 apri il file nunit.exe.config, che si trova in questa cartella: C: \ Programmi \ NUnit 2.5.2 \ bin \ net-2.0.

Sotto aggiungi:

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

[sostituire xxxxx con i numeri corretti che hai annotato]

e sotto aggiungi:

<loadFromRemoteSources enabled="true" />

Il cambiamento sopra ha funzionato per me. Speriamo che altre persone si trovino di fronte a questo problema.


0
2018-04-06 17:45