Am fost luptă cu VS 2017 cand l-am instalat. Acum se pare Teste Unitare va rula din linia de comandă "dotnet test."
Proiectul meu este .NET Core 1.1.1. Am SDK și actualizarea cadrului pentru 1.1.1 instalat.
Am încercat proba la MSDN (https://msdn.microsoft.com/en-us/library/ms182532.aspx), care, de asemenea, nu exact în același mod.
Toate pachete NuGet pentru teste și principalul proiect sunt actuale. Și atât proiectul de testare și principal al proiectului de a construi fără erori. O testele rula cu succes, de la linia de comandă.
A luat careva Teste Unitare pentru a rula în VS 2017, dacă da, cum?
Multumesc, John
Aici este un exemplu de un test simplu proiect, care nu este de lucru pe GitHub. Acesta este un exemplu cu xUnit dar am încercat NUnit și visual studio construit în MS teste. Indiferent de ceea ce de testare sau ce schimbări aș face eu nu pot obține VS test runner pentru a găsi orice teste.
DEL %TEMP%\VisualStudioTestExplorerExtensions
test -> testare setări -> implicit arhitectura de procesor
este setat la x86Întrebarea Poate cineva vă rugăm să ofere un exemplu de lucru un .Net Core 1.1.0 soluție în VS2017 (.csproj fișiere de proiect) unde VS test explorer găsește cu succes teste de unitate SAU arată-mi problemă în exemplul dat.
API-ul pentru test adaptoare pentru .NET Core s-a schimbat odată cu lansarea Visual Studio 2017 și de proiect.jsonformat
csprojformat. Acest lucru a făcut existente
dotnet-test-*adaptoare ca dotnet-test-nunit
învechite.
Adaptoarele au fost actualizate, dar modul de configurare și teste în Visual Studio sau pe linia de comandă cu dotnet test necesită diferite referințe în testul de proiecte. Atenție de orice documentație veți găsi că trimitere de pachete în dotnet-test-*` format, deoarece acestea sunt depășite.
În primul rând, test de proiect trebuie să vizeze o anumită platformă, fie .NET Core sau .NET Framework. Nu-țintă .NET Standard chiar dacă codul sunteți de testare este .NET Standard. Acest lucru este pentru că ținta de teste care indică platforma pentru a rula teste de conformitate. .NET Standard este ca un PCL (Portable Class Library) în care se poate rula pe mai multe platforme.
Apoi, aveți nevoie pentru a adăuga referințe la Microsoft.NET.Test.Sdk`, testul cadru de alegere și un test compatibil adaptor. Pentru NUnit, referințele va arata acest lucru,
<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 comentariu de mai sus menționează adăugarea,
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
Asta e't strict necesar, dar poate ajuta. Acesta este adăugat automat la toate unitate de testare de proiecte de Visual Studio pentru a ajuta-l găsească rapid proiecte cu teste.
Dacă testele nu't apar în Visual Studio, primul lucru pentru a încerca este de a închide soluție și apoi re-a le deschide. Nu pare a fi bug-uri în Visual Studio nu detectează modificări la proiectele de când editați-le.
Pentru mai multe informații, a se vedea de Testare .NET Core cu NUnit în Visual Studio 2017
Am avut aceeași problemă și a luat-o de a lucra si de a face următoarele.. :
Uitând pentru a face testul de clasă publice prevenirea's metodele de testare în interiorul să fie descoperite
Am avut un default xUnit proiect și șterse proba UnitTest1.cs, înlocuindu-l cu un controler clasa de test, cu un cuplu de teste, dar niciunul nu a fost găsit
Poveste lungă scurt, după actualizarea xUnit, de Test.Sdk, xUnit.runner pachete și reconstrucția proiect am întâlnit o acumulare de eroare:
Eroare xUnit1000 clase de Test trebuie să fie publice
Din fericire, versiunea actualizată a aruncat această excepție pentru a mă scuti de unele probleme
Modificarea clasei de test să fie publică fix problema mea
În cazul meu, am viza proiectul de testare a x64
Arhitectura si testul stabilirea Arhitecturii (test->Implicit Arhitectura de Procesor ) s-a schimbat a fost setat la x86
. Ei nu't de meci.
După setarea înapoi la testul de stabilire Arhitectură a `x64 și reconstrui toate testele au fost descoperite din nou.
Am avut probleme cu VS 2017 a-mi găsi UnitTest la fel de bine. Nu a fost't problema exact John a întrebat - dar asta a fost primul rezultat in google că am venit în căutarea pentru atât am vrut să împărtășesc problema mea.
Am avut o moștenire soluție întoarce din VS2010 peste VS2013, VS2015. Acum în VS2017 se pare spații de nume pentru [TestMethod]
Atribut s-au schimbat.
Înainte de a utiliza
Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0
Am creat un nou Test.dll în proiect și că cel utilizat în mod implicit
Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0
Deci solutia mea a fost de a crea un nou UnitTest proiect din cadrul VS2017. Poate că schimbarea de asamblare referințe pentru vechiul proiect de test ar fi lucrat la fel de bine. Cu noua referință VS2017 v-a descoperi acele teste unitare.
Don't citit din data de articole sub MSDN. .NET Core materiale relevante sunt sub docs.microsoft.com
https://docs.microsoft.com/en-us/dotnet/articles/core/testing/
În general vorbind, ai nevoie de un .NET Core consolă aplicație conține unitatea de cazuri de testare.
Fi sigur că utilizați Microsoft corect.NET.Test.Sdk-ul:
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
Nu utilizați pre-lansare unul. Sau trebuie să se schimbe pentru a consola app (nu library). Am o problemă similară, dar cu cea mai recentă versiune (15.0.0) începe să funcționeze din nou.
De asemenea, trebuie să adăugați:
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
dar eu nu cred că este necesar.
Stiu ca OP a enumerat pe lista de verificare, dar's ușor de trecut cu vederea acel moment în timp ce faci curat instalați Visual Studio 2017 și înființarea nou proiect. În afară de NUnit șablon de proiect și NUnit Cadru unul are nevoie pentru a instala NUnit adaptor separat, de exemplu, folosind NuGet comanda Instala-Pachet NUnit3TestAdapter -Versiunea 3.9.0
. După aceea Visual Studio Community 2017 început descoperirea teste unitare, fără probleme.
În cazul meu Test Explorer n't găsi testele mele dupa ce m-am mutat la un nou proiect de soluție.
Răspunsul a fost pur și simplu că am avut o trimitere la vechiul MS Adaptor de Testare în proiectul meu.
Am avut un duplicat de pe linia de mai jos pentru versiunea 1.1.11 de MS Adaptor de Testare în cs.proj:
<Import Proiect="..\pachete de\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.recuzita" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props')" />
Pentru a repara problema,
Doar a avut această problemă cu visual studio fiind în imposibilitatea de a găsi testele mele, n't vedea butonul de a alerga-le în afară de metoda, și nu au fost't luat prin rularea tuturor testelor în proiect.
Pare-mi clasa de test a fost't public! Făcându-l public permis VS pentru a descoperi teste.
În cazul meu, a fost un proiect pe care am avut-actualizat proiectul de testare dintr-o mai devreme .Versiunea Net. în aplicația.config am avut assemblybindings la versiunile anterioare ale dependent ansambluri.
După fixarea assembnlybindings în aplicația.config, testele mele am descoperit.
Top răspunsurile de mai sus nu au de lucru pentru mine (repornirea, calculatorul actualizarea la versiunea 1.1.18 ... am fost deja actualizat, șterge fișierele temporare, clearning NuGet cache etc).
Ceea ce am descoperit este că am avut diferite referiri la MSTest.TestAdapter și MSTest.Cadru în testare diferite proiecte (soluția mea a doua). Unul a fost subliniat 1.1.18 ca...
pachetele.config
<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />
... dar altul are trimiteri la 1.1.11. Unele dintre răspunsurile de mai sus duce la această descoperire, atunci când două versiuni de biblioteci apărut în directorul temp (%TEMP%\VisualStudioTestExplorerExtensions\), după repornirea Visual Studio.
Pur și simplu actualizarea meu de pachete.config la 1.1.18 versiune este ceea ce mi-a restaurat unitatea teste de funcționalitate în VS. Se pare că există unele bug-uri care nu permit side-by-side referințe de MSTest biblioteci. Sper că acest lucru vă ajută.
Mai multe informații:
Solutia a fost scoaterea meu app.config file din unitatea mea de testare a proiectului. Testele va re-apărea!
Acest fișier referire unele dll's în bindingredirects care nu erau de fapt prezente în proiectul de referințe. Re-adăuga assemblybindings care sunt strict necesare pentru proiectul dumneavoastră.
În cazul meu, a fost UWP proiect prezente în soluție cauzează problema.
Când m-am descărcat UWP proiect, testele au fost descoperite. Când am încărcat-o înapoi, de testare a dispărut din nou.
Încercați să descărcați toate proiectele și să păstreze proiectul de testare numai. Zece reconstrui soluție și test shound apar în Test Runner. Sarcina proiecte, unul câte unul și de a reconstrui soluție de fiecare dată pentru a afla ce proiect sunt cauza problemei
Am'am încercat totul, dar nimic nu a ajutat. În cazul meu, am avut o soluție cu mai multe proiecte-pilot și unii dintre ei au fost folosind vechiul ms-cadru de testare atât de Visual Studio găsit doar acele.
Am instalat cadru de testare pachete pentru toate proiectele-pilot cum se arată în răspunsul acceptat. Apoi eliminate referirile la calitatea vechi-unelte, repornit Visual Studio și acum pot vedea toate testele.