Test di unità non rilevati in Visual Studio 2017


213

Ho avuto problemi con VS 2017 da quando l'ho installato. Ora sembra che i test delle unità verranno eseguiti solo dalla riga di comando "dotnet test".

Il mio progetto è .NET Core 1.1.1. Ho installato SDK e l'aggiornamento del framework per 1.1.1.

Ho provato l'esempio su MSDN ( https://msdn.microsoft.com/en-us/library/ms182532.aspx ) che fallisce esattamente allo stesso modo.

Tutti i pacchetti NuGet per i test e il progetto principale sono aggiornati. E sia il progetto di test che il progetto principale vengono compilati senza errori. I test vengono eseguiti correttamente dalla riga di comando.

Qualcuno ha ottenuto Test unitari da eseguire in VS 2017, se sì come?

Grazie John


Aggiorna - Estendi

Ecco un esempio di un semplice progetto di test che non funziona su GitHub . Questo è un esempio di xUnit ma ho provato NUnit e Visual Studio nei test MS. Indipendentemente dal test o dalle modifiche apportate, non riesco a trovare il test del VS Runner.

Quello che ho provato

  • Eliminazione dei file della cache di test VS. DEL %TEMP%\VisualStudioTestExplorerExtensions
  • Riavvio di VS
  • Esplora test di chiusura / apertura
  • per xUnit installato Microsoft.DotNet.InternalAbstractions( vedi SO post )
  • per NUnit assicurarsi che sia installato l'adattatore e la stessa versione (3) del pacchetto NUnit
  • test -> test settings -> default processor architecture è impostato su x86

La domanda
Qualcuno può fornire un esempio funzionante di una soluzione .Net Core 1.1.0 in VS2017 (file di progetto .csproj) in cui il VS test explorer trova correttamente i test unitari O mostrami il problema nell'esempio fornito.


Ho scoperto che VS2017 non installa tutti i pacchetti richiesti. Quando ho provato a spostare il mio MonoGame dal vecchio PC a quello nuovo con Windows 10 e VS 2017 appena installati, ho iniziato a lanciare strani errori sui pacchetti mancanti. Dopo aver installato VS2015 insieme a VS2017 tutti i problemi erano scomparsi. Forse prova a installare VS2015 in aggiunta.
Mateusz,

2
Prova a installare i pacchetti di test con il programma di installazione di Visual Studio
Markiian Benovskyi,

Sto esaminando se VS 2017 ha tutte le variabili di ambiente impostate correttamente.
John Pezzanite,

1
Per NUnit, è necessario utilizzare il pacchetto NuGet per l'adattatore e deve essere 3.8.0-alpha1 o più recente.
Rob Prouse,

2
Nel mio caso era la semplice presenza di un app.configfile nel mio progetto di test: stackoverflow.com/a/47497668/67824 .
Ohad Schneider,

Risposte:


189

Nel mio caso, ho scoperto che dovevo semplicemente aggiornare i miei adattatori di test e il framework di test. Fatto.

Esempio con Gestione pacchetti NuGet:

inserisci qui la descrizione dell'immagine


4
Anche questo mi ha aiutato! Si noti che è possibile "Gestire i pacchetti Nuget" a livello di soluzione e farlo per tutti i progetti in cui è richiesto. Potresti quindi ottenere errori di "riferimento ambiguo" - per questi, basta rimuovere la vecchia DLL (Microsoft.VisualStudio.QualityTools.UnitTestFramework) dai riferimenti
Prashanth Subramanian

48
Queste cose dovrebbero essere estensioni di Visual Studio, non pacchetti NuGet.
Jaider,

1
Abbiamo molti vecchi progetti MSTest e non sapevo che passasse a un pacchetto NuGet. Ciò ha risolto anche per me, inizialmente pensato che fosse un bug con le nuove versioni di ReSharper fino a quando non ho realizzato che VS Test Explorer non riusciva a scoprire i miei test.
David Anderson,

1
Ho fatto esattamente la stessa cosa che afferma questa risposta. Nella mia soluzione VS2017, ho aggiunto un progetto MSTest, aggiunto alcuni test, ma la creazione della soluzione avrebbe comportato: Scopri il test terminato: 0 trovati. Quindi, per il progetto di test, in NuGet Package Manager (puoi farlo anche a livello di soluzione), ho aggiornato MSTest.TestAdapter e MSTest.TestFramework sia dalla v1.1.18 alla v1.2.0. Quindi, dopo aver fatto una build, i miei test ora appaiono in Test Explorer.
Kershaw,

1
Ha funzionato alla grande per me, ho dovuto andare nel gestore dei pacchetti nuget in VS2017 per il particolare progetto di test e ho semplicemente aggiornato i vari pacchetti che avevo come nunit ecc, quindi compilare> ricostruire e tutto ok.
Tahir Khalid,

126

Questo ha funzionato per me (non so se è il risultato di cambiare le aree di lavoro che hanno danneggiato qualcosa):

Eliminazione dei file della cache di test VS in% TEMP% \ VisualStudioTestExplorerExtensions e riavvio VS2017.


4
Questo ha funzionato una volta, non dopo. Ciò (questa volta) risolto per me è stato l'eliminazione della cartella TestResults e bin / obj (insieme a questa pulizia della directory temporanea)
icesar

24
Chiunque si %TEMP%echo %TEMP%
chieda

21
La cartella non esiste in temp: /
Douglas Gaskell

quindi qual è la causa di tale comportamento?
Mykhailo Seniutovych,

1
Il modo più semplice per accedere a% TEMP% è vincere + R e digitare% TEMP%
PontiusTheBarbarian

58

L'API per gli adattatori di test per .NET Core è cambiata con il rilascio di Visual Studio 2017 e il passaggio dal project.jsonformato al csprojformato. Ciò ha reso obsoleti gli dotnet-test-*adattatori esistenti dotnet-test-nunit.

Gli adattatori sono stati aggiornati, ma il modo in cui si configurano ed eseguono i test in Visual Studio o sulla riga di comando dotnet testrichiede riferimenti diversi nei progetti di test. Attenzione a qualsiasi documentazione che trovi che i pacchetti di riferimento nel dotnet-test-*formato perché obsoleti.

Innanzitutto, il progetto di test deve essere indirizzato a una piattaforma specifica, .NET Core o .NET Framework. Non può targetizzare .NET Standard anche se il codice che si sta testando è .NET Standard. Questo perché l'obiettivo dei test indica in quale piattaforma eseguire i test. .NET Standard è come un PCL (Portable Class Library) in quanto può essere eseguito su molte piattaforme.

Successivamente, è necessario aggiungere riferimenti a Microsoft.NET.Test.Sdk, il framework di test preferito e un adattatore di test compatibile. Per NUnit, i tuoi riferimenti appariranno così,

<itemgroup>
    <packagereference Include="Microsoft.NET.Test.Sdk" Version="15.0.0"></packagereference>
    <packagereference Include="NUnit" Version="3.7.1"></packagereference>
    <packagereference Include="NUnit3TestAdapter" Version="3.8.0"></packagereference>
</itemgroup>

Un commento sopra menziona l'aggiunta,

<ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>

Questo non è strettamente necessario, ma può aiutare. Viene aggiunto automaticamente a tutti i progetti di unit test da Visual Studio per consentire di trovare rapidamente progetti con test.

Se i test non vengono visualizzati in Visual Studio, la prima cosa da provare è chiudere la soluzione e riaprirla. Sembra che ci siano dei bug in Visual Studio che non rilevano le modifiche ai progetti quando le modifichi.

Per ulteriori informazioni, vedere Test di .NET Core con NUnit in Visual Studio 2017


2
Il targeting per .NET Framework anziché .NET Standard ha funzionato per me. Grazie.
Ben Griswold,

7
Quel riferimento a Microsoft.NET.Test.SDK mancava nel mio progetto e non vi era alcuna indicazione da nessuna parte che qualcosa si basasse su di esso per la visualizzazione. Aggiunto tramite la console Nuget e tutto ha iniziato a funzionare. Grazie per l'elenco di riferimento!
GWhite

Ho dovuto copiare questa cartella da un collega nella mia directory temporanea e riavviare VS:% TEMP% \ VisualStudioTestExplorerExtensions \ MSTest.TestAdapter.1.1.18
Heiner

Come posso testare un progetto netstandard 2.0 se cambio Target Framework? Non riesco più a compilare perché un progetto netstandard2.0 non può essere referenziato da un progetto che tagets net46
Jerome2606,

1
Questo ha funzionato per me. Grazie per la soluzione dettagliata.
Talha Ashfaque,

42

Ho avuto lo stesso problema e l'ho fatto funzionare nel modo seguente:

  • Prima chiudi tutte le istanze di Visual Studio aperte ed elimina questa cartella:% TEMP% \ VisualStudioTestExplorerExtensions. ( Esecuzione di test con Visual Studio )
  • Vai al gestore dei pacchetti Nuget e installa prima Microsoft.NET.Test.Sdk (15.3.0-preview-20170425-07) e quindi installa xunit.runner.visualstudio (2.3.0-beta1-build1309). Vedi lo screenshot di Nuget allegato per vedere tutti i pacchetti che ho dovuto installare per ottenere l'ultimo VS 2017 per rilevare i miei test.Screenshot di Nuget

35
L'eliminazione di % Temp% \ VisualStudioTestExplorerExtensions mi è bastata.
Juan Pablo Gomez,

Yeap. L'eliminazione e il riavvio di VS lo hanno risolto.
Juan Carlos,

Qualcuno sa cosa causa questo in primo luogo? Ho avuto successo due volte per me ora, ma eliminare quella cartella e riavviare VS ha funzionato. È solo strano.
RubyHaus,

@PmanAce - In realtà l'ho fatto. Sto usando due diverse istanze TFS (una per progetto), quindi l'area di lavoro cambia automaticamente quando cambio progetto.
RubyHaus,

l'eliminazione della cartella e l'aggiunta del nuget Microsoft.NET.Test.Sdksembra funzionare per me .. grazie StackOverflow. (Soluzione .NET Framework WebApi 2)
bkwdesign

40

Dimenticare di rendere pubblica la classe di test impedisce di scoprire i metodi di test all'interno

Avevo un progetto xUnit predefinito e ho eliminato l'esempio UnitTest1.cs, sostituendolo con una classe di test del controller, con un paio di test, ma nessuno è stato trovato

Per farla breve, dopo aver aggiornato i pacchetti xUnit, Test.Sdk, xUnit.runner e ricostruito il progetto ho riscontrato un errore di build:

Errore xUnit1000 Le classi di test devono essere pubbliche

Per fortuna la versione aggiornata ha gettato questa eccezione per risparmiarmi qualche problema

La modifica della classe di test come pubblica ha risolto il mio problema


6
non so perché ho votato, ma prima del mio caffè mattutino al 100% questo è stato trascurato da me.
Andrei,

1
Ho provato tutte le altre risposte a questa domanda / problema e questa è stata quella che alla fine ha funzionato!
FastTrack

3
Quello è incredibilmente imbarazzante ma ... qualunque cosa. La cosa divertente è che se crei un caso di suite di test in VS2017 non genererà la publicclasse, ma solo la classe, quindi non la scoprirà fino a quando non aggiungi l' publicidentificatore.
briosheje,

ovviamente. il mio cattivo - mstest dovrebbe avere questa caratteristica.
Crismogramma,

10

Nel mio caso ho indirizzato il progetto di test su x64Architecture e l'impostazione del test Architecture (test-> Default Processor Architecture) è stata modificata x86. Non combaciavano.

Dopo aver ripristinato l'impostazione del test Architecture x64e ricostruito tutti i test sono stati scoperti di nuovo.


in vs2017 l'impostazione nel menu Test -> Impostazioni test -> Architettura processore predefinita
IcyBrk

8

Ho avuto problemi con VS 2017 nel trovare anche il mio UnitTest. Non era il problema esatto che John stava chiedendo, ma questo è stato il primo risultato in Google che stavo cercando, quindi volevo condividere il mio problema.

Avevo una soluzione legacy che tornava da VS2010 a VS2013, VS2015. Ora in VS2017 sembra che gli spazi dei nomi per l' [TestMethod]attributo siano cambiati.

Prima che stesse usando

Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0

Ho creato un nuovo Test.dll nel progetto e quello utilizzato per impostazione predefinita

Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0

Quindi la mia soluzione era quella di creare un nuovo progetto UnitTest da VS2017. Forse anche la modifica dei riferimenti di assieme per il vecchio progetto di test avrebbe funzionato. Con il nuovo riferimento VS2017 ha scoperto quei test unitari.


Purtroppo anche un nuovo progetto di unit test non ha mostrato il suo test: /
Douglas Gaskell,

7

Non leggere articoli non aggiornati in MSDN. I materiali pertinenti di .NET Core sono disponibili su docs.microsoft.com

https://docs.microsoft.com/en-us/dotnet/articles/core/testing/

In generale, è necessaria un'app console .NET Core per contenere i casi di test unitari.


Grazie mille, Lex. Se questo articolo è corretto, l'unico modo per testare .NET Core è dalla riga di comando - perdendo così tutta l'integrazione VS che abbiamo avuto con l'esecuzione di test in VS 2015. Sono corretto in questo?
John Pezzanite,

Usi xUnit.net o MSTest?
Lex Li

@JohnPezzanite devi mostrare di più di quello che hai fatto (probabilmente un repository GitHub se possibile). Ho progetti su GitHub che funziona perfettamente e molti altri.
Lex Li

Segui l'esempio nella riga che ho fornito. L'ho provato con .NET standard e .NET Core, con i test unitari di Microsoft come nell'esempio e con xUnit. Lo standard .NET si integra con VS 2017 mentre .NET Core verrà eseguito solo dalla riga di comando. Ma sto ripetendo quello che ho affermato sopra. Sembra che Microsoft abbia rimosso tutti i moduli di integrazione di test unit .NET Core VS 2017.
John Pezzanite,

@JohnPezzanite test GitHub.com/lextm/sharpsnmplib e la sua soluzione NetStandard.
Lex Li

6

per me il problema è stato erroneamente inserito testcase in una classe interna

[TestClass]
  internal class TestLib {
}

ciò stava causando l'identificazione dei testcase.


5

Assicurati di utilizzare il file Microsoft.NET.Test.Sdk corretto:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />

Non utilizzare quello pre-release. Oppure devi passare all'app console (non alla libreria). Ho il problema simile, ma con l'ultima versione (15.0.0) ricomincia a funzionare.

Inoltre, potresti dover aggiungere:

  <ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
  </ItemGroup>

ma non credo sia essenziale.


In quale file si trova? Posso trovare la parte "Includi servizio" nel mio file di progetto (* .csproj) ma non nel PackageReference.
Chris Bennet,

@ChrisBennet nel tuo file * test.csproj.
Evgeni Nabokov,

1
@ evgeni-nabokov ha ragione. Tutte queste modifiche si trovano nel file [project] .test.csproj. Fai clic con il tasto destro del mouse sul progetto nella soluzione e seleziona "Modifica [progetto] .test.csproj" Vedi esempio su: github.com/RenetConsulting/angularcore.net/blob/master/Business/…
Alex Altotsky,

5

So che OP ha elencato questo nella sua lista di controllo, ma è facile trascurare quel punto mentre si esegue un'installazione pulita di Visual Studio 2017 e si imposta un nuovo progetto. Oltre al modello di progetto NUnit e NUnit Framework è necessario installare l'adattatore NUnit separatamente, ad es. Usando il comando NuGet Install-Package NUnit3TestAdapter -Version 3.9.0. Successivamente Visual Studio Community 2017 ha iniziato a scoprire unit test senza problemi.


1
Questo mi ha aiutato!
YvesR,

OMG, questo l'ha fatto per me. Se potessi inzupparti di taglie, lo farei.
Ash

Questa è stata l'unica soluzione che ha funzionato per me, grazie!
Vadim Tofan,

5

Nel mio caso, Test Explorer non è riuscito a trovare i miei test dopo aver spostato il progetto in una nuova soluzione.

La risposta è stata semplicemente che avevo un riferimento al vecchio MS Test Adapter nel mio progetto.

Ho avuto un duplicato della riga seguente per la versione 1.1.11 dell'adattatore MS Test nel mio file cs.proj:

<Import Project="..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props')" />

Per fissare il problema,

  1. Fare clic con il tasto destro del mouse sul progetto e selezionare "Scarica progetto".
  2. Fare clic con il tasto destro del mouse sul progetto e selezionare 'Modifica'
  3. Rimuovere la riga che importa la vecchia versione dell'adattatore.
  4. Fare clic con il tasto destro sul progetto e selezionare 'Ricarica progetto'.
  5. Ricostruisci soluzione / progetto

Aveva lo stesso problema. La rimozione e la ricostruzione della soluzione non ha funzionato. VS riavviati e test sono stati scoperti!
Mike Ward,

4

Ho appena avuto questo problema con Visual Studio che non è riuscito a trovare i miei test, non ha potuto vedere il pulsante per eseguirli oltre al metodo e non sono stati rilevati eseguendo tutti i test nel progetto.

Ho scoperto che la mia lezione di prova non era pubblica! Renderlo pubblico ha permesso a VS di scoprire i test.


2

Per me è stato più semplice creare un nuovo progetto di test che funzioni perfettamente con Visual Studio 2017 ... e basta copiare i file di test, aggiungere riferimenti e pacchetti NuGet come richiesto.

inserisci qui la descrizione dell'immagine


la creazione di un nuovo progetto ha probabilmente risparmiato ore di mal di testa!
M.kazem Akhgary,

2

Nel mio caso, era un progetto che avevo aggiornato il progetto di test da una versione precedente .Net. in app.config avevo assemblybindings alle versioni precedenti degli assembly dipendenti.

Dopo aver corretto i collegamenti assembnly in app.config, i miei test sono stati scoperti.


2

Scoperta

Le risposte migliori sopra non hanno funzionato per me (riavvio, aggiornamento alla versione 1.1.18 ... Ero già aggiornato, eliminando i file temporanei, svuotando la cache NuGet ecc.).

Quello che ho scoperto è che avevo riferimenti diversi a MSTest.TestAdapter e MSTest.Framework in diversi progetti di test (la mia soluzione ha due). Uno era indicato all'1.1.18 come ...

packages.config

<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />

... ma un altro ha i riferimenti a 1.1.11. Alcune delle risposte sopra riportate portano a questa scoperta quando due versioni delle librerie sono apparse nella mia directory temporanea (% TEMP% \ VisualStudioTestExplorerExtensions \) dopo aver riavviato Visual Studio.

Soluzione

Il semplice aggiornamento dei miei pacchetti.config alla versione 1.1.18 è ciò che ha ripristinato la mia unità test funzionalità in VS. Sembra che ci siano alcuni bug che non consentono riferimenti affiancati delle librerie MSTest. Spero che questo ti aiuti.

Ulteriori informazioni:

  • Visual Studio 2017 Ent: 15.5.6 (avevo aggiornato dalla 15.0.1 con la speranza di risolvere questo problema, ma l'ho avuto in entrambi)

2

La soluzione stava rimuovendo il mio app.configfile dal mio progetto di unit test. I test riappariranno!

Questo file faceva riferimento ad alcune DLL nei binding diretti che non erano effettivamente presenti nei riferimenti del progetto. Aggiungere nuovamente le associazioni di assemblaggio che sono strettamente necessarie per il progetto.


1

Nel mio caso, era il progetto UWP presente nella soluzione a causare il problema.

Quando ho scaricato il progetto UWP, sono stati scoperti i test. Quando l'ho caricato di nuovo, il test è scomparso di nuovo.

Prova a scaricare tutti i progetti e mantieni solo il progetto di prova. Dieci soluzione di ricostruzione e test shound appaiono in Test Runner. Carica i progetti uno per uno e ricostruisci la soluzione ogni volta per scoprire quale progetto sta causando il problema

repository campione

VS bug report


Apprezzo la risposta ma questo non è un mio problema. Se guardi il repository di esempio a cui ho collegato la mia domanda, nella soluzione c'è un solo progetto. Non ci sono altri progetti da rimuovere. Quella soluzione è un test, quindi ho provato quello che hai detto scaricando progetti sulla mia soluzione reale, ma non ha funzionato.
Rayepps

1

Il problema

Il problema è che Visual Studio viene "confuso" rispetto alle versioni core dotnet sul computer. Quando sono andato al pannello di controllo -> programmi di disinstallazione ho installato 8 diversi SDK core e Runtime di dotnet. Ciò in qualche modo stava causando un errore silenzioso di VS durante il tentativo di trovare i test.

Convalida il problema

Puoi convalidare il problema accedendo alla riga di comando e accendendo la versione di dotnet $ dotnet --version. Se vedi qualcosa tranne l'ultima versione che hai installato, la tua macchina ha qualche discrepanza e non sta usando la versione corretta. Esempio ... Se hai dotnet core 1.0.1installato ma quando ottieni la versione al prompt dei comandi e dice1.0.0 un problema.

La soluzione

Elimina tutte le cose vecchie. Ho iniziato solo con quello che pensavo di dover rimuovere (le versioni più vecchie di dotnet rc) ma ha comunque fornito la versione sbagliata durante il test del problema. Alla fine mi sono concesso di fare una pulizia completa. IO...

  • Disinstallate tutte le applicazioni di Visual Studio (sulla mia macchina VS2015 e VS2017)
  • Disinstallate tutte le versioni di dotnet core (anche le più recenti)

Dopo che la mia macchina era completamente vuota di tutti i VS e donet ho installato solo VS2017 (viene fornito con l'ultimo dotnet). Ho creato un progetto di test xUnit e l'esploratore del test ha trovato il test immediatamente RISOLTO

Questo può sembrare eccessivo, ma ho trascorso due settimane cercando di risolvere il problema in altri modi. Se stai riscontrando il problema, fallo, anche se potrebbero essere necessarie ore per disinstallare / reinstallare elementi, probabilmente ti farà risparmiare tempo.

Riferimenti

  • Vedi il post sul blog di @epestic dove fornisce maggiori dettagli sulla risoluzione del problema.

1

Ho provato di tutto ma niente mi ha aiutato. Nel mio caso avevo una soluzione con diversi progetti di test e alcuni di essi utilizzavano il vecchio framework ms-test, quindi Visual Studio ha trovato solo quelli.

Ho installato i pacchetti del framework di test per tutti i progetti di test, come mostrato nella risposta accettata . Quindi rimosso i riferimenti ai vecchi strumenti di qualità, riavviato Visual Studio e ora posso vedere tutti i test.


1

Per C ++:

Poiché non esiste una domanda speciale per i test C ++, ma l'argomento è sostanzialmente lo stesso, ecco cosa mi ha aiutato quando ho avuto problemi con la scoperta dei test.

Se hai installato lo sviluppo desktop solo con C ++ , la soluzione è installare anche lo sviluppo della piattaforma Windows universale con gli strumenti della piattaforma Windows universale C ++ opzionale . Puoi selezionarli nel programma di installazione web di Visual Studio.

Successivamente, ricostruire il progetto di test e il rilevamento dei test dovrebbe funzionare.

A proposito, ho creato il progetto unit test in VS2017. Potrebbe essere importante, perché alcuni utenti hanno menzionato, che avevano problemi di scoperta nei progetti, che sono stati migrati da VS2015 a VS2017.


1

Rimuovere il vecchio dll dovrebbe aiutare. Cancellazione dei file temporanei situati nella directory% TEMP% in C: \ Users (nome utente) \ AppData \ Local \ Temp


1

Ho avuto lo stesso problema. La mia soluzione era OK ma all'improvviso quando ho aperto la soluzione ho scoperto che i test sono spariti.

Alla fine ho effettuato il downgrade Microsoft.VisualStudio.TestPlatform.TestFrameworke i Microsoft.VisualStudio.TestPlatform.TestFramework.Extensionspacchetti a una versione molto vecchia (usando il gestore NuGet) e sono stati mostrati i metodi di test. Quindi ho aggiornato alla versione più recente e c'erano ancora.

Quindi basta eseguire il downgrade e l'aggiornamento dei pacchetti.


1

Nel mio caso nessuno dei precedenti mi aiuta. Ma eseguo il downgrade di NUNit3TestAdapter alla versione 3.8.0, quindi eseguo l'aggiornamento alla versione più recente (3.10.0)


1

A volte cambiando lo spazio dei nomi dei test funziona. Ho avuto la struttura delle cartelle come segue:

A |___B | |___D |___C___E

Lo spazio dei nomi era piatto come Test. <Nome> e non venivano visualizzati nella finestra del test. Quando ho cambiato lo spazio dei nomi nella struttura della directory, sono comparsi tutti i test. Ora potrei tornare a qualsiasi altra struttura dello spazio dei nomi che desidero.

Non dimenticare di costruire il tuo progetto!


1

Nel caso di .NET Framework, nel progetto di test c'erano precedentemente riferimenti alle seguenti DLL:

Microsoft.VisualStudio.TestPlatform.TestFramework
Microsoft.VisualStudio.TestPlatform.TestFramework.Extentions

Li ho cancellati e ho aggiunto riferimento a:

Microsoft.VisualStudio.QualityTools.UnitTestFramework

E poi tutti i test sono comparsi e hanno iniziato a lavorare come prima.

Ho provato quasi tutti gli altri suggerimenti di cui sopra, ma il semplice riferimento ai DLL di test ha funzionato bene. Ho pubblicato questa risposta per coloro che sono nel mio caso.


1

Stavo affrontando lo stesso problema, nel mio caso per risolvere

  1. Ho aperto la console di Windows (tasto Windows + cmd).
  2. Passare alla cartella in cui è stato creato il progetto.
  3. Eseguito il comando "dotnet test" è fondamentalmente lo stesso test eseguito da Visual Studio ma quando lo si esegue tramite console consente di vedere la traccia completa.
  4. Ho ricevuto questo messaggio di errore "Attributo TestClass definito sulla classe non pubblica MSTest.TestController.BaseTest"
  5. Quindi sono andato al caso di test e lo contrassegno come pubblico, compilare di nuovo e i miei test vengono visualizzati correttamente

0

All'inizio, ho provato ad usare MSTest. Dopodiché, lo cambio al test Nunit. Quindi volevo sostenere MSTest. Ho rimosso tutti i codici e i riferimenti nUnit ma Test Explorer non ha mostrato i metodi MSTest. Soluzione: ho rimosso tutti i riferimenti nuget più piccoli e reinstallato. Fatto.


0

Per me, cambiando TargetFramework nel .csprojfile del progetto di test da

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

per

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

lavorato.


0

Nel mio caso il problema era che il tipo di progetto era impostato su libreria statica (lib) e dovrebbe essere una libreria dinamica (dll)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.