2013-05-20 10 views
5

Ho una libreria di classi F # con i pacchetti "xUnit.net" e "xUnit.net Runners" installati utilizzando NuGet. Ho il seguente codice:I test xUnit v1 vengono visualizzati in xUnit GUI (xunit.gui.clr4.exe) ma non VS 2012 Test Explorer

module XUnitTest 

open Xunit 

[<Fact>] 
let Test() = 
    do Assert.True (1 = 2) 
    () 

Quando eseguo il xUnit GUI (xunit.gui.clr4.exe, che NuGet aggiunge a (projectdirectory) \ Packages \ xunit.runners.1.9.1 \ tools), e carica l'assembly creato da questo progetto, appare il metodo Test() e fallisce quando lo eseguo, come previsto.

Tuttavia, non riesco a far comparire il test in Esplora test di VS 2012, indipendentemente dal numero di volte ricostruito, riavviato, ecc. Se faccio clic su Esegui tutto, viene visualizzata la finestra di output di generazione, ma non accade nient'altro.

Per il resto ho installato anche le estensioni xUnit.net, anche se non credo siano necessarie per quello che sto cercando di fare. Neanche questo ha aiutato.

Per favore fatemi sapere se posso fornire ulteriori informazioni e grazie per aver letto!

+0

Il plug-in vs [installato e] rileva il tuo C# '[Fatto]' s? –

+0

Buona domanda. Ho creato un progetto di test dell'unità C# e il test integrato è apparso in Test Explorer. Quindi ho usato NuGet per ottenere nuovamente xUnit.net e xUnit.net Runner, aggiunto un riferimento a Xunit, sostituito l'attributo "TestMethod" con "Fact" e ricostruito. Nessun test Ho utilizzato con successo altri pacchetti NuGet, come il provider del tipo XAML di FSharpx, e non ho ricevuto alcun messaggio di errore evidente sull'installazione dei pacchetti Xunit.net. – FSharpN00b

+0

correlati: http://stackoverflow.com/questions/16214684/why-is-the-xunit-runner-not-finding-my-tests –

risposta

5

Piuttosto sicuro basato su quello che è necessario installare xUnit.net runner for Visual Studio 2012 VSIX extension il xUnit.net runners NuGet package as detailed on the relevant xUnit docs page.

L'equivalente MST è incorporato in un'installazione VS standard.

+0

Ciao Ruben, ho installato il pacchetto xUnit.net Runners tramite NuGet. Ciò ha aggiunto la console xUnit.net e gli eseguibili della GUI alla mia directory (projectdirectory) \ packages \ xunit.runners.1.9.1 \ tools, che è stato il modo in cui sono stato in grado di determinare che xUnit.net da solo è in grado di vedere i test in la mia assemblea. È solo che l'integrazione tra xUnit e Visual Studio non sembra avvenire. – FSharpN00b

+0

@ FSharpN00b Esatto. C'è un pezzo mancante. È il bit a cui mi sono collegato. Questo bit è un plug-in che si trova in VS e scansiona i test assembly per * xUnit.net * Facts. Non è stato installato, quindi non trova i test C# o F #. Quindi devi seguire il link e installarlo. Non conosco un modo più lungo di dirlo! –

+0

Ciao Ruben, avevi esattamente ragione. Non sono riuscito a trovare un modo per Visual Studio per cercare il file vsix disponibile al link che hai postato, ma sono riuscito a installarlo andando nel menu Strumenti, Estensioni e aggiornamenti e cercando il runner xUnit.net. Ora il mio test appare. Ho pensato che il "xUnit.net runner per VS 2012" in Estensioni e Aggiornamenti era lo stesso del pacchetto "xUnit.net: Runner" disponibile attraverso NuGet. Ovviamente, ho pensato che fosse sbagliato, perché sembra che non siano uguali. Grazie per aver chiarito questo e mi scuso per non averlo capito la prima volta. – FSharpN00b

1

Assicurarsi di cercare tra Prerelease inclusi. Il pacchetto di cui hai bisogno è 'xUnit.net [Visual Studio Runner]', che è un prerelease. Se cerchi solo versioni Stable, troverai solo "xUnit.net: Runners", che non funzionerà in Visual Studio.

+0

Grazie, George. Lo terrò a mente la prossima volta che voglio usare xUnit nel mio progetto. – FSharpN00b