2014-04-30 16 views
6

Non riesco a capire cosa devo fare per generare Fakes. Nel mio progetto di test ho incluso un riferimento all'assembly che voglio simulare. Ha aggiunto/Fakes/< nome assembly >. Fa parte del mio progetto e ha generato il progetto. C'erano un sacco di avvertimenti, ma ci sono 0 errori e la compilazione è stata completata con successo. Ma non aggiunge alcun riferimento all'assembly .Fakes generato.L'assemblaggio dei falsi non sta generando

La maggior parte degli avvisi erano cose come non è possibile generare stub o spessori per un enum, o qualche classe privata non è visibile all'assemblaggio dei falsi. C'è davvero solo 1 lezione nell'assemblea che voglio Shim, e niente di ciò che voglio Stub. Così ho modificato il file .fakes:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" 
     Diagnostic="true"> 
    <Assembly Name="[assembly name]"> 
    <StubGeneration> 
     <Clear /> 
    </StubGeneration> 
    <ShimGeneration> 
     <Clear /> 
     <Add Namespace="[namespace that the 1 class I want to shim is in]" /> 
    </ShimGeneration> 
    </Assembly> 
</Fakes> 

ho pulito e ricostruito il progetto, e sto ancora ricevendo tonnellate di avvertimenti, e nessun errore, che non può stub o classi shim che ho escluso nel .fakes file e l'assembly .Fakes non viene ancora generato.

In che modo posso effettivamente impedire di creare stub e creare solo spessori per le classi che si trovano in uno spazio dei nomi specifico? Le informazioni da http://msdn.microsoft.com/en-us/library/hh708916.aspx sono, apparentemente, non corrette.

Inoltre, ho rimosso l'attributo Version dall'elemento Assembly, ma gli avvertimenti che sto ancora includendo il numero di versione nello spazio dei nomi. Cosa succede con quello?

+0

Nota che ci sono alcune difficoltà se le classi sono sigillati o sono certe classi di mscorlib. Questi potrebbero non essere possibili per il falso. Al momento non disponiamo di informazioni sufficienti per spiegare la causa del problema. – Magus

+0

Ci sono alcune classi sigillate nell'assemblea, ma non mi interessa quelle. La classe che sto cercando di spremere è pubblica e non sigillata. Sto cercando di modificare il file .fakes per escludere quelle classi sigillate. Sembra che non importi ciò che ho inserito nel file .fakes. – Nick

+0

@Nick hai trovato la tua risposta? Ho lo stesso identico problema! –

risposta

8

Ho scoperto qual era il mio problema. Pensavo che StubGeneration e ShimGeneration dovessero essere elementi figlio dell'Assemblea, ma non lo sono. Dovrebbero essere figli di falsi e fratelli dell'Assemblea. Dopo aver cambiato il mio file .fakes a questo, funziona:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" 
     Diagnostic="true"> 
    <Assembly Name="[assembly name]" /> 
    <StubGeneration> 
    <Clear /> 
    </StubGeneration> 
    <ShimGeneration> 
    <Clear /> 
    <Add Namespace="[namespace that the 1 class I want to shim is in]" /> 
    </ShimGeneration> 
</Fakes> 
+1

Grazie questo era il mio problema pure. Dovresti segnare la tua risposta ... –

Problemi correlati