2012-11-12 14 views
7

Sto provando a configurare un semplice progetto NUnit in Visual Studio 2012 Express utilizzando NuGet manager. Da Progetto-> Gestisci pacchetti Nuget ho installato NUnit (quadro) e volevo aggiungere NUnit.Runner ma durante l'installazione che sto ricevendo:NUnit.Runners via Nuget su Visual Studio 2012 express non funziona

'NUnit.Runners 2.6.2' already installed. 

Ok, ma quando vado agli strumenti-> Biblioteca pacchetto Manager- > Gestire nuGet Packages for Solution sia NUnit (framework) che NUnit.Runners vengono visualizzati come installati.

Posso usare NUnit framework nel codice ma quando sto provando a eseguire test il vecchio 'Test Explorer' rimane e non mostra nulla. I test non sono nemmeno invocati.

Mi manca qualcosa nella configurazione VS2012 o NUnit?

risposta

6

Come ho scoperto, Visual Studio Express non supporta le estensioni del progetto (vietate e disabilitate da Microsoft). Quindi sembra che non ci sia alcuna possibilità di usare NUnit senza alcuni accorgimenti. Finora ho installato la versione completa e lì NUnit runner funziona come previsto.

4

Perché non utilizzare il test runner integrato in VS2012 e aggiungere il testadunter nunit tramite il gestore estensione?

+0

Sì, questa è la soluzione che stavo pensando. Grazie. – Michal

5

Si potrebbe anche usare l'approccio sombody citato nei commenti di questo blog post:

  1. Aggiungere un riferimento alla NUnit-console-runner nel montaggio di prova.

  2. Nel vostro montaggio di prova, fare una classe con uno di linea seguenti (vedi sotto )

  3. Aprire le proprietà del montaggio di prova. Ad esempio, fare clic con il tasto destro sull'assieme e selezionare Proprietà.

    1. Nella scheda Applicazione, selezionare Tipo di output: Applicazione Windows; e oggetto di avvio: NUNitConolseRunner (il file sopra).

    2. Nella scheda Debug, immettere il nome del file .csproj in Argomenti della riga di comando; e accedere alla cartella del file .csproj in Directory di lavoro.

  4. Salva tutto, impostare un punto di interruzione e di esecuzione utilizzando F5 o il pulsante con la freccia verde.

Codice:

using System; 
namespace MotorExampleTests 
{  
    // Written by blokeley 
    class NUnitConsoleRunner 
    { 

    [STAThread] 
    static void Main(string[] args) 
    { 
     NUnit.ConsoleRunner.Runner.Main(args); 
    } 
    } 
} 
+0

Ho provato questo approccio ma non sono riuscito a farlo funzionare. Così ho trovato un modo per farlo funzionare. Quello che ho fatto è stato invece creare un progetto di console separato e quindi eseguire i miei test dal metodo Main eseguendo la seguente riga: 'NUnit.ConsoleRunner.Runner.Main (nuova stringa [] {@" C: \ myprograms \ mysolution \ MyProject. Test \ bin \ Debug \ MyProject.Test.dll "});' – FernandoZ

+0

Anche questo mi consente di mantenere i miei test come una DLL invece di un exe come suggerisce il post sopra. – FernandoZ

+0

Invece dei percorsi hardcoded è possibile ottenere il percorso tramite 'System.IO.Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly(). GetName(). CodeBase)' – tobsen

Problemi correlati