2016-06-10 21 views
16

Ho una suite di test di grandi dimensioni in un progetto .NET Core. Posso usare la finestra Test Explorer per selezionare alcuni test da eseguire.Come si eseguono test specifici utilizzando il test dotnet?

È inoltre possibile eseguire l'intera suite di test nella riga di comando con dotnet test. C'è un modo per eseguire solo uno (o alcuni) test sulla riga di comando?

risposta

20

Con la versione dotnet 1.0.0, è necessario utilizzare l'opzione --Filter:

È possibile filtrare per DisplayName, FullyQualifiedName e tratti.

Es:

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1" 

Inoltre, questi operatori sono consentiti:! =, = E ~ (contiene).

Maggiori informazioni qui: docs

+0

ho provato questo e questa soluzione funziona anche per la versione 1.1 e un metodo decorato [teoria]. Commuta '-method' e' -class' non sono più disponibili in 1.1 e si otterrà un errore: 'MSBUILD: errore MSB1001: switch Unkown. Switch: -method' – Teknikaali

+1

Sì, l'ho appena confermato. '-method' non funziona più, ma' --filter' fa. Grazie a @andrecarlucci! –

+0

Dalla versione 15.1 l'espressione può essere una parola chiave che verrà confrontata con i nomi completi. Come afferma la documentazione "' dotnet test --filter xyz' è uguale a 'dotnet test --filter FullyQualifiedName ~ xyz'" Che è molto comodo! – vtellier

11

Questa risposta è obsoleto ...

Questo è xUnit specifica: dotnet test -method <test name>

<test name> è il nome del metodo completo (namespace + classe + nome del metodo)

Se i test è un Theory , AFAIK, non c'è modo di specificare quale teoria eseguire. Li eseguirà tutti.

+0

Grazie! È documentato da qualche parte? –

+0

Penso che dovrebbe essere da qualche parte nella documentazione xunit https://xunit.github.io/#documentation –

+0

Questo potrebbe essere qualcosa che è cambiato nelle ultime due settimane; Ora puoi testare una teoria allo stesso modo. – kiml42

4

Dal momento che questa domanda è codificata con xUnit, il comando per il comando di dotnet xUnit CLI è la seguente:

dotnet xunit -method FullyQualifiedName 
Problemi correlati