Mi sembra di avere tutti i tipi di problemi che cercano di fare in modo che NUint funzioni correttamente con una libreria PCL. La mia libreria PCL ha come target .NET 4.5, Silverlight 4 e versioni successive, Windows Phone 7.5, Windows Store, Mono per Android e MonoTouch (gli ultimi due con Xamarin). Tuttavia, quando provo ad aggiungere NUnit al progetto tramite NuGet, sembra che venga aggiunto (nunit.framework viene aggiunto ai riferimenti) ma lo spazio dei nomi NUnit non è disponibile. Se provo e aggiungi un using NUnit.Framework
, Visual Studio sottolinea e se provo e costruire ottengo un errore circa il NUnit
namespace non può essere trovato con questo avvertimento:Utilizzo di NUnit con PCL
Warning 2 The primary reference "nunit.framework" could not be resolved because it has an indirect dependency on the framework assembly "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETPortable,Version=v4.0,Profile=Profile104". To resolve this problem, either remove the reference "nunit.framework" or retarget your application to a framework version which contains "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
Può NUnit lavorare con PCLS? I tutorial mvvm cross sembrano certamente gestirlo.
Ho provato a creare un progetto separato per il test (una normale libreria di classi) e posso aggiungere NUnit a questo, ma poi non riesco a aggiungere un riferimento alla mia libreria PCL (quella che voglio testare), in modo che non aiuta neanche.
Qualche idea?
Se si osserva più da vicino il progetto MvvmCross a cui si fa riferimento, vedrete che il progetto dell'unità di test stesso non è un PCL ma un progetto .NET 4.5. Per quanto ne so, NUnit non può essere referenziato da un progetto PCL poiché NUnit stesso non è un assembly PCL. La strategia dovrebbe piuttosto essere quella di creare un progetto di test unitario specifico per la piattaforma (ad esempio .NET 4, 4.5) che fa riferimento a NUnit e alla libreria PCL sottoposta a test. Se hai ancora problemi, sei sicuro che la libreria PCL abbia come target la piattaforma del tuo progetto di test unitario? –
Come dice Anders, NUnit non supporta la scrittura di test in un assembly PCL. Vedi la mia risposta alla seguente domanda sui test PCL in generale: http://stackoverflow.com/questions/16973411/portable-class-library-testing –