Nessun test trovato. Assicurati che i rilevatori di test installati e gli esecutori, le impostazioni della versione della piattaforma e del framework siano appropriati e riprova


95

Sono in procinto di aggiornare la nostra soluzione esistente a .Net 4.6.1 e non sono stato in grado di eseguire i nostri test unitari durante una build del server. A livello locale vengono eseguiti come previsto e capovolgere la versione del framework di nuovo a .Net 4.5.1 li fa funzionare di nuovo sul server.

Ricevo il seguente errore:

Nessun test trovato. Assicurati che i rilevatori di test installati e gli esecutori, le impostazioni della versione della piattaforma e del framework siano appropriati e riprova.

Ho riprodotto il problema in una configurazione più semplice:

  • Soluzione con un singolo progetto di unit test C # con due test (uno non riuscito, uno superato).
  • Definizione di build XAML usando il modello predefinito (TfvcTemplate.12.xaml)
  • Server di compilazione XAML di TFS 2015 Update 1 con Visual Studio Enterprise 2015 Update 1 installato (sono presenti sei server simili e tutti producono lo stesso risultato)

Secondo Brian Harry di Microsoft, questo è un bug su cui stanno attualmente indagando. Dovrebbe essere risolto nell'aggiornamento 2 e in seguito dovrebbe essere pubblicata una soluzione temporanea. Fonte: link
Tore Østergaard

Ho lo stesso problema per .Net 3.5 SP1 in Visual Studio 2013 Update 5.
Andrey Bushman

@AndreyBushman: l'errore potrebbe essere anche nel 2013U5 poiché è stato rilasciato insieme a 2015RTM. Ma la soluzione alternativa dovrebbe funzionare anche nel tuo caso.
Tore Østergaard

Ho avuto un problema simile, la soluzione alternativa era semplicemente in vs, nelle impostazioni di test, per selezionare il bit del processore predefinito giusto (32/64) e non mantenere il motore acceso. (vs 2017.x)
kfn

Risposte:


59

Puoi provare a modificare l' architettura del processore predefinita nelle impostazioni di test da X86 a X64. Nel mio caso questo era il problema.

Ciò accade se l'obiettivo della piattaforma del progetto in prova è impostato su x64.

Screenshot delle impostazioni del test


Questo l'ha risolto per me. Nel mio caso, sia il progetto da testare che il progetto di test erano impostati su x86. I test erano annullabili ma non sono stati eseguiti. Dopo averlo modificato in Any CPU, i test sono stati eseguiti.
Datchung

Ho appena avuto lo stesso problema e questo lo ha risolto. Sono anche abbastanza sospettoso che questo possa aver avuto un cattivo effetto nego-sinergico sui miei riferimenti al progetto principale, che ha improvvisamente interrotto il caricamento di una particolare DLL, ma non ha determinato in modo definitivo questo brutto effetto collaterale.
Allen

44

Anche la mia build non trovava i test. La mia configurazione e la soluzione per trovare i test sono le seguenti.

Uso VSTS (Visual Studio Team Services) e ho una build configurata per aggiornare i pacchetti NUGET su ogni build. Sto usando NUnit e ho scoperto che l'esecuzione del seguente comando NUGET (dalla console del gestore pacchetti in Visual Studio) per aggiungere la libreria NUnitTestAdapter al mio progetto di test e il check-in in packages.config ha fatto eseguire i test nella mia build VSTS.

Install-Package NUnitTestAdapter

Come menzionato da Maurice nel commento a questo post per NUnit3, utilizzare il seguente pacchetto NUGET (cercare altre utilità sul collegamento, ad esempio: dotnet CLI e Paket CLI)

Install-Package NUnit3TestAdapter

Spero che questo ti aiuti.


10
Attualmente sto anche utilizzando VSTS. Come consigliato ho aggiunto NUnit3TestAdapter (dato che sto usando NUnit 3.8.1) e questa soluzione ha risolto il mio problema. Grazie :-)
Maurice Klimek

1
Il pacchetto di installazione NUnit3TestAdapter ha risolto il mio problema :)
Bimal Das

26

Nel mio caso, dovevo:

1) converti il ​​test proj in netcore 2.0 (era netstandard 2.0)

2) aggiungi il pacchetto nuget xunit.runner.visualstudio

Riferimento: http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/


2
lo stesso problema era con me. Sto usando xunit con .net core
Amna

Questo ha funzionato anche per me in Visual Studio 2017 con xunit e .NET Core 2.1.
Thorkil Værge

3
nel mio caso era un progetto .net 4.6.1 quindi l'unica cosa che mancava era il runner xunit. Installato e funzionato.
Juan

1
Come Juan. Mancava solo il pacchetto runner. L'esecuzione di questo nel gestore dei pacchetti per il progetto di test lo ha risolto: install-package xunit.runner.visualstudio
Premil

11

Ho ricevuto questo errore e sono stato in grado di risolverlo.

  1. Uso Visual Studio Professional 2017
  2. In VS, sono passato a Strumenti -> Estensioni e aggiornamenti
  3. Nella parte superiore del menu, avevo notato che il mio adattatore NUnit era disabilitato
  4. Ho fatto clic sul pulsante [Abilita]
  5. Sono stato in grado di avviare i test senza errori.

Sì! E non dimenticare di riavviare Visual Studio. Era richiesto per me.
Michael Levy

"In cima al menu" cosa significa?
Sean Kendle,

1
@SaiyajinGohan. Dopo aver completato il passaggio 2, viene visualizzata la finestra "Estensioni e aggiornamenti". Nella parte superiore di questa finestra, ho visto che l'adattatore NUnit era disabilitato. Spero che questo chiarisca ...
J Wood

Grazie per questo, ancora non riuscivo a farlo funzionare con il progetto su cui stavo lavorando. Fortunatamente era un progetto di prova e il successivo ha funzionato. Ancora un mistero sul perché.
Sean Kendle

10

Sto usando MSTest. Per me, era la versione non corrispondente e mancava un altro pacchetto dipendente -

1) La cartella del mio pacchetto contiene solo il pacchetto MSTest.TestFramework.1.2.1. Nel mio file di progetto (.csproj) il riferimento in Target Name era il pacchetto MSTest.TestAdapter.1.2.0 che non era presente nella cartella del pacchetto. Il mio packages.config fa anche riferimento a MSTest.TestFramework.1.2.0.

2) Quindi ho installato MSTest.TestAdapter.1.2.0 dal gestore di pacchetti nuget e allineato la versione di MSTest.TestFramework a 1.2.0 nel file di progetto e del pacchetto. Infine aggiungo Microsoft.VisualStudio.TestPlatform.TestFramework e Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions nel riferimento.

Poi è andato tutto bene. Spero che questo aiuti qualcuno.


Mi sono imbattuto in questo con .Net 4.6.1 VS2017. Ho finito per tornare alla 1.2.0 - assicurati sicuramente di non avere due versioni diverse nella cartella dei pacchetti o nel controllo del codice sorgente.
Jeremy Thompson

2
Il mio sembrava trovare i test, ma sì, il vero problema era "MSTest.TestAdapter" mancante. Nessun errore o avviso carino (VS2017 15.8). Sembravano tutti a posto tranne che non sono stati trovati test, nonostante apparissero nel test explorer ..... Così quando ho fatto "install-package MSTest.TestAdapter" improvvisamente i miei test hanno funzionato come previsto. Grazie MS - 3 ore sprecate ...........
James Joyce

1
L'installazione di MSTest.TestAdapter 1.4.0 ha funzionato per me in VS 2019. Ho sprecato solo 30 minuti grazie a te.
furman87

6

Questo problema emerge di nuovo per Visual Studio 2017. Molto probabilmente un altro bug ma lo stesso risultato.

Una soluzione alternativa che sembra funzionare è disinstallare Microsoft Visual Studio 2017 Remote Debugger dal computer interessato.


5
  1. Installa l'ultima versione di Nunit e NUnitTestAdapter dal pacchetto NUGET.
  2. Vai a -> Test -> Impostazioni di test -> Architettura del processore predefinita -> Cambia in X64
  3. Crea la soluzione.
  4. Questo risolverà il problema di Esegui test e debugger in unit test e inizierà a funzionare.

Questo in realtà ha funzionato per me dopo aver sbattuto la testa in così tante direzioni e suggerimenti.
rajibdotnet

4

Mi sono imbattuto nello stesso problema in VSTS con .Net 4.6.2. Se lo vedi dall'output della tua console VSTS, la soluzione alternativa fornita da @Sushil funziona ancora in VSTS ed è necessaria. Sfortunatamente il compito "Test Assemblies" fornito da Microsoft viene superato, quindi non sai nemmeno che c'è un problema a meno che non controlli l'output e non trovi nessuno dei tuoi test effettivamente eseguito!

Correzione test VSTS


Il mio problema riguardava l'aggiornamento 1 di TFS 2015 (in sede) ed è stato risolto con l'aggiornamento 2. Non sono sicuro che lo stesso problema esistesse / esistesse con VSTS.
Tore Østergaard

4

Se stai eseguendo i tuoi test all'interno di Docker usando la costruzione multistadio e i test non vengono trovati. Assicurati di copiare tutti i file non solo i file di progetto come sotto la sezione Dockerfile.

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]

RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release

Questo mi ha davvero morso. Penso che l'indizio che ciò stia accadendo sia che TROVA la DLL di unit test, ma NON trova alcun test in essa. Ho anche scoperto che l'inserimento di questo inline dopo le tue istruzioni di copia ti consentirà di ispezionare per vedere cosa È STATO copiato (qui / app / tests è la tua directory di destinazione sull'immagine Docker): RUN file = "$ (ls -al / app / tests) "&& echo $ file (vedi questo post per maggiori informazioni su echo )
David Yates,

3

Ho risolto questo problema per problema nel progetto di test VS 2017 e 4.6.2 con i seguenti passaggi:

  1. Rimuovere i riferimenti a Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll ed estensioni
  2. Installa il pacchetto Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated nuget

3

Assicurati di avere installato il nuget "Microsoft.NET.Test.Sdk".


2

Questo è un problema noto per .Net 4.6 ora.

Impossibile eseguire unit test .Net 4.6.x come parte di una build XAML TFS con TFS 2015 UPdate1 Origine: https://connect.microsoft.com/VisualStudio/feedback/details/2245723

Ecco una domanda simile per il tuo riferimento: Impossibile eseguire .Net 4.6 unit test del server di compilazione XAML di TFS 2015


2
Ciao Patrick. Entrambi i link che fornisci sono casi aperti da me, quindi non mi fiderei di loro come riferimento ;-).
Tore Østergaard

2

Ho risolto questo problema reinstallando tutti i test relativi pacchetti Nuget per il progetto: Xunit, Xunit.runner.vistualstudio,Microsoft.Net.Test.Sdk


1

Stavo riscontrando un problema simile e ho notato che in qualche modo un app.configfile era stato aggiunto al mio progetto di prova. La rimozione di questo file di configurazione lo ha risolto per me.


1

Getterò la mia soluzione nel mucchio. Nel mio caso, aggiungo un paio di progetti a una soluzione esistente insieme ai progetti di test per loro. Stiamo usando MSTest. Nella soluzione era abilitato un file UnitTest.testsettings precedente che causava problemi di compatibilità.

Facendo clic sul file delle impostazioni è stato rimosso il controllo e il test è andato a buon fine per i miei test.

inserisci qui la descrizione dell'immagine


1

Trovato un modo! Probabilmente non il più ortodosso, ma mi ha aiutato in fretta:

  1. Aggiorna i pacchetti MSTest.TestAdapter e MSTest.TestAdapterFramework alla versione 1.4.0 da Strumenti> Gestione pacchetti NuGet.
  2. Pulisci la soluzione ed esegui nuovamente i test.

Non penso ci sia nulla di particolare con la versione, ma aggiornarla sicuramente pulisce qualsiasi riferimento sia cattivo nella soluzione / progetto.


0

Questo è solo per ricapitolare la soluzione proposta da @Sushil in precedenza.

Questo è un problema noto in Team Foundation Server 2015 RTM + Update 1 e verrà risolto nell'aggiornamento 2, riferimento .

C'è una soluzione alternativa descritta da @Sushil qui , che include l'aggiunta di un file .runsettings che forza il test runner a un framework .Net precedente (per favore non devi specificarlo tramite la finestra di dialogo "Aggiungi / Modifica esecuzione di prova" quando lo aggiungi direttamente nell'editor del processo di compilazione verrà ignorato).


0

Utilizzando .Net Core con una pipeline di compilazione in TFS 2017, il passaggio del test di Visual Studio è stato superato senza eseguire effettivamente alcun test. Ho dovuto modificare il passaggio "Opzioni di esecuzione avanzate" -> "Altre opzioni della console" per includere:

/framework:".NETCoreApp,Version=v2.0"

(Quel campo contiene anche /platform:x64)


0

In Visual Studio 2017 disinstallo e reinstallo NUnitTestAdapter o installo un nuovo pacchetto come NUnitTestAdapter.WithFramework e il problema è sparito.


0

Ho ricevuto questo errore perché la mia classe di unit test non era pubblica.

Ex:

class ClientTests

Errore nell'output:

...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests

Correzione:

public class ClientTests


0

Sto avendo lo stesso problema. Sto usando Visual Studio 2017 Community Edition.

inserisci qui la descrizione dell'immagine

Ho utilizzato questi passaggi per scoprire con successo tutti i miei casi di test ed eseguirlo correttamente:

  • Per prima cosa vai su Estensioni e aggiornamenti, installa NUnit3 Test Adapter. Se lo hai già, abilitalo.

  • Riavvia il tuo Visual Studio 2017, verrà automaticamente richiesto di
    installare l'estensione, se un prompt dice di terminare l'attività per continuare
    installazione, fai clic su "Termina operazione".

  • Successivamente, ricostruisci il tuo progetto di test e tutti i casi di test verranno ora identificati e ora puoi iniziare a eseguire i tuoi casi di test.


0

Nel mio caso, reinstallazione dell'adattatore Nunit3, eliminazione delle cartelle temporanee, modifica dell'architettura e nulla ha funzionato. È a causa del Daemon Resharper che ha causato il problema.

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS 

Questo risolve i problemi.


0

Questo errore può verificarsi per i test asincroni se hai il tipo di ritorno sbagliato. Il tipo restituito dovrebbe essere Task e non void.


0

Dopo aver aggiunto TestAdapterPath nel comandante, ha funzionato per me:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"

Per prima cosa, assicurati che il test case possa essere eseguito nell'IDE VS.
dixiashi

0

Nel mio caso i test sono stati scoperti ma l'esecuzione ha prodotto "Test non disponibile ... " e il (in) famoso: "Assicurati che il rilevatore di test e gli esecutori siano registrati e che le impostazioni della versione della piattaforma e del framework siano appropriate e riprova."

l'errore era indipendente da Visual Studio (testato da strumenti CLI dotnet e test UNit quasi nudo) ed era solo quando si mirava a .NET 4.7.1. l'app dotnetcore funziona bene.

anche l'esecuzione di test con la CLI Nuint3 nunit3-console.exe Tests.csprojmostra l'errore:

"Uno dei due assembly non contiene test oppure non è stato trovato un driver di prova appropriato."

l'errore era dovuto al fatto che l'adattatore di prova non è stato trovato su un'unità o una condivisione di rete (mappata) ed è stato risolto copiandolo localmente e rieseguendolo.


0

se hai già installato un adattatore di prova nel progetto di prova, prova a disinstallarlo dal progetto e installalo di nuovo nel progetto di prova.

Questa correzione di base funziona per me.


0

Provare a eseguire vstest.console.execon --diag:diag.txte controllare l'output. Per me si trattava di errori di caricamento della DLL per gli adattatori di prova dalla mia directory di lavoro:

TpTrace Information: 0 : 14976, 1, 2020/03/10, 15:34:22.120, 57158093583, vstest.console.exe, AssemblyResolver.OnResolve: Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter: Failed to load assembly. Reason:System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

File name: 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

Ho lavorato intorno a questo con l'aggiunta di <loadFromRemoteSources enabled="true"/>sotto <runtime>in vstest.console.exe.config


0

Uso MSTest.

Ho installato da Nuget l'ultima versione di MSTest.TestFramework e sostituito OOB Rimuovi riferimenti a Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Quindi installato da neget l'ultima versione di Microsoft.TestPlatform

Mi ha permesso di eseguire il test con un comando:

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

Ma ho ricevuto lo stesso errore. La causa principale dell'errore è che non ho specificato un adattatore di test che analizza l'assembly e trova i test.

Soluzione:

  1. Installa un pacchetto nuget "MSTest.TestAdapter"

  2. Specificare un adattatore di prova alla fine di un comando:

    /TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common "


0

Per coloro che stanno affrontando il problema simile, ecco la soluzione, installare SpecFlowPlusRunner.

Ho provato altre soluzioni come la reinstallazione, l'eliminazione della cache, ecc. Ma la soluzione è in realtà diversa, abbiamo bisogno di installare SpecRun.SpecFlow2.3.0 per visualstudio 2017.Questo ha risolto il problema.

Spero che questo aiuti tutti.


0

Ho affrontato il problema simile quando ho provato nUnit in VS 2017 e non è un progetto principale. L'installazione ha NUnit3TestAdapterrisolto il problema.

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.