Tidak ada tes yang ditemukan. Pastikan bahwa penemu & pelaksana pengujian yang diinstal, setelan versi platform & kerangka kerja sudah sesuai dan coba lagi

101

Saya sedang dalam proses meningkatkan solusi yang ada ke .Net 4.6.1 dan tidak dapat menjalankan pengujian unit kami selama pembuatan server. Secara lokal mereka berjalan seperti yang diharapkan dan membalik versi kerangka kembali ke .Net 4.5.1 membuatnya berjalan lagi di server.

Saya mendapatkan kesalahan berikut:

Tidak ada tes yang ditemukan. Pastikan bahwa penemu & pelaksana pengujian yang diinstal, setelan versi platform & kerangka kerja sudah sesuai dan coba lagi.

Saya telah mereproduksi masalah dalam pengaturan yang lebih sederhana:

  • Solusi dengan satu proyek Uji Unit C # dengan dua pengujian (satu gagal, satu lulus).
  • XAML membangun definisi menggunakan Templat Default (TfvcTemplate.12.xaml)
  • TFS 2015 Update 1 XAML build server dengan Visual Studio Enterprise 2015 Update 1 diinstal (memiliki enam server serupa dan semua menghasilkan hasil yang sama)
Robek Østergaard
sumber
Menurut Brian Harry dari Microsoft, ini adalah bug yang sedang mereka selidiki. Ini harus diperbaiki di Pembaruan 2, dan solusi sementara harus diposting nanti. Sumber: tautan
Tore Østergaard
Saya memiliki masalah yang sama untuk .Net 3.5 SP1 dalam Visual Studio 2013 Pembaruan 5.
Andrey Bushman
@AndreyBushman: Kesalahannya mungkin terjadi pada 2013U5 juga karena dirilis bersamaan dengan 2015RTM. Tetapi solusi tersebut harus bekerja dalam kasus Anda juga.
Tore Østergaard
Saya memiliki masalah yang sama, solusinya hanya dalam vs, di bawah pengaturan pengujian, untuk memilih bit prosesor default yang tepat (32/64), dan tidak perlu menjalankan mesin. (vs 2017.x)
kfn

Jawaban:

2

Ini adalah masalah yang diketahui untuk .Net 4.6 sekarang.

Tidak dapat menjalankan pengujian unit .Net 4.6.x sebagai bagian dari XAML TFS Build dengan TFS 2015 UPdate1 Sumber: https://connect.microsoft.com/VisualStudio/feedback/details/2245723

Berikut adalah pertanyaan serupa untuk referensi Anda: Tidak dapat menjalankan .Net 4.6 Pengujian unit server pembuatan TFS 2015 XAML

PatrickLu-MSFT
sumber
3
Hai Patrick. Kedua tautan yang Anda berikan adalah kasing yang dibuka oleh saya, jadi saya tidak akan mempercayai mereka sebagai referensi ;-).
Tore Østergaard
60

Anda dapat mencoba mengubah arsitektur prosesor default Anda di Setelan Pengujian dari X86 ke X64. Dalam kasus saya, inilah masalahnya.

Ini terjadi jika target platform dari proyek Anda yang diuji disetel ke x64.

Tangkapan layar setelan pengujian

rubeonline.dll
sumber
Ini menyelesaikannya untuk saya. Dalam kasus saya, baik proyek yang sedang diuji dan proyek uji disetel ke x86. Tes tidak dapat dipulihkan tetapi gagal dijalankan. Setelah saya mengubahnya menjadi Semua CPU, pengujian dijalankan.
datchung
Saya baru saja mengalami masalah yang sama dan ini menyelesaikannya. Saya juga cukup curiga bahwa ini mungkin memiliki efek negatif sinergis yang buruk pada referensi proyek utama saya, yang tiba-tiba berhenti memuat DLL tertentu, tetapi belum menentukan secara pasti efek samping yang buruk ini.
Allen
45

Bangunan saya juga tidak menemukan tes. Pengaturan dan solusi saya untuk menemukan pengujian adalah sebagai berikut.

Saya menggunakan VSTS (Visual Studio Team Services) dan memiliki build yang dikonfigurasi untuk menyegarkan paket NUGET di setiap build. Saya menggunakan NUnit dan menemukan bahwa menjalankan perintah NUGET berikut (dari konsol manajer paket di Visual Studio) untuk menambahkan perpustakaan NUnitTestAdapter ke proyek pengujian saya dan pemeriksaan di packages.config membuat pengujian berjalan di membangun VSTS saya.

Install-Package NUnitTestAdapter

Seperti yang disebutkan Maurice di Komentar untuk posting ini untuk NUnit3 gunakan paket NUGET berikut (Cari utilitas lain di tautan. Yaitu: dotnet CLI dan Paket CLI)

Install-Package NUnit3TestAdapter

Semoga ini membantu.

Nick Rubino
sumber
10
Saya juga sedang menggunakan VSTS. Seperti yang disarankan, saya menambahkan NUnit3TestAdapter (karena saya menggunakan NUnit 3.8.1) dan solusi ini memecahkan masalah saya. Terima kasih :-)
Maurice Klimek
1
Instal-Paket NUnit3TestAdapter memecahkan masalah saya :)
Bimal Das
27

Dalam kasus saya, saya harus:

  1. Konversi proyek uji ke netcore 2.0 (sebelumnya netstandard 2.0)

  2. Tambahkan paket nuget xunit.runner.visualstudio

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

Woo hoo
sumber
3
masalah yang sama terjadi pada saya. Saya menggunakan xunit dengan .net core
Amna
Ini juga berfungsi untuk saya di Visual Studio 2017 dengan xunit dan .NET Core 2.1.
Thorkil Værge
4
dalam kasus saya adalah proyek .net 4.6.1 jadi satu-satunya hal yang hilang adalah pelari xunit. Memasangnya dan bekerja.
Juan
1
Sama seperti Juan. Hanya paket pelari yang hilang. Menjalankan ini di manajer paket untuk proyek pengujian menyelesaikannya: install-package xunit.runner.visualstudio
Premil
12

Saya menggunakan MSTest. Bagi saya, itu benar versi yang salah dan kehilangan paket dependen lainnya -

1) Folder paket saya hanya berisi paket MSTest.TestFramework.1.2.1. Dalam file proyek saya (.csproj) referensi dalam Nama Target adalah paket MSTest.TestAdapter.1.2.0 yang tidak ada dalam folder paket. Package.config saya juga memiliki referensi MSTest.TestFramework.1.2.0.

2) Jadi saya menginstal MSTest.TestAdapter.1.2.0 dari manajer paket nuget dan menyelaraskan versi MSTest.TestFramework ke 1.2.0 dalam proyek dan file paket. Akhirnya saya menambahkan Microsoft.VisualStudio.TestPlatform.TestFramework dan Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions di referensi.

Kemudian semuanya baik-baik saja. Semoga ini bisa membantu seseorang.

quasar
sumber
Saya menemukan ini dengan .Net 4.6.1 VS2017. Saya akhirnya kembali ke 1.2.0 - pastikan Anda tidak memiliki dua versi berbeda di folder paket Anda atau di kontrol sumber.
Jeremy Thompson
2
Milik saya tampaknya menemukan pengujian, tetapi ya, "MSTest.TestAdapter" yang hilang adalah masalah sebenarnya. Tidak ada kesalahan atau peringatan yang bagus (VS2017 15.8). Semua tampak bagus kecuali tidak ada tes yang ditemukan, meskipun muncul di test explorer ..... Jadi ketika saya melakukan "install-package MSTest.TestAdapter" tiba-tiba tes saya berjalan seperti yang diharapkan. Terima kasih MS - 3 jam terbuang ...........
James Joyce
1
Menginstal MSTest.TestAdapter 1.4.0 berhasil untuk saya di VS 2019. Saya hanya menyia-nyiakan 30 menit terima kasih kepada Anda.
furman87
11

Saya mendapat kesalahan ini dan dapat mengatasinya.

  1. Saya menggunakan Visual Studio Professional 2017
  2. Di VS, saya menavigasi ke Tools -> Extensions and Updates
  3. Di bagian atas menu, saya perhatikan bahwa adaptor NUnit saya dinonaktifkan
  4. Saya mengklik tombol [Enable]
  5. Saya dapat memulai tes tanpa kesalahan.
J Wood
sumber
Iya! Dan jangan lupa restart Visual Studio. Itu diperlukan untukku.
Michael Levy
"Di bagian atas menu" apa artinya?
Sean Kendle
1
@Bayu_joo. Setelah Anda menyelesaikan langkah 2, jendela "Ekstensi dan Pembaruan" akan muncul. Di bagian atas jendela ini, saya melihat adaptor NUnit dinonaktifkan. Semoga ini menjelaskan ....
J Wood
Terima kasih untuk itu, saya masih tidak bisa menyelesaikan ini dengan proyek yang saya kerjakan. Untungnya itu adalah proyek percobaan dan yang berikutnya berhasil. Masih menjadi misteri mengapa.
Sean Kendle
6

Masalah ini muncul lagi untuk Visual Studio 2017. Kemungkinan besar bug lain tetapi hasil yang sama.

Satu solusi yang tampaknya berhasil adalah membongkar Microsoft Visual Studio 2017 Remote Debugger dari mesin yang terpengaruh.

Csapi007
sumber
5

Saya mengalami masalah yang sama di VSTS dengan .Net 4.6.2. Jika Anda melihat ini dari keluaran konsol VSTS Anda, solusi yang disediakan oleh @Sushil masih berfungsi di VSTS dan diperlukan. Sayangnya tugas "Test Assemblies" yang disediakan oleh Microsoft lolos, jadi Anda benar-benar bahkan tidak tahu ada masalah kecuali Anda memeriksa output dan menemukan tidak ada pengujian yang benar-benar dijalankan!

Perbaikan Tes VSTS

raterus
sumber
Masalah saya adalah dengan Pembaruan 1 TFS 2015 (on-prem) dan telah diperbaiki dengan Pembaruan 2. Saya tidak yakin apakah masalah yang sama ada / ada dengan VSTS.
Tore Østergaard
5
  1. Instal Nunit dan NUnitTestAdapter versi terbaru dari paket NUGET.
  2. Buka -> Tes -> Pengaturan Tes -> Arsitektur prosesor default -> Ubah ke X64
  3. Bangun solusinya.
  4. Ini akan menyelesaikan masalah Jalankan Uji dan Debugger dalam pengujian unit dan itu akan mulai bekerja.
Karthikeyan Nandagopalan
sumber
Ini benar-benar berhasil untuk saya setelah membenturkan kepala saya ke banyak arah dan saran.
rajibdotnet
4

Jika Anda menjalankan pengujian di dalam buruh pelabuhan menggunakan pembangunan multistage dan pengujian tidak ditemukan. Pastikan Anda menyalin semua file tidak hanya file proyek seperti di bawah ini bagian 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
Bassam Gamal
sumber
Ini memang menggigitku. Saya pikir petunjuk bahwa ini terjadi adalah MENEMUKAN tes unit DLL, tetapi TIDAK menemukan tes apa pun di dalamnya. Saya juga menemukan bahwa meletakkan inline ini setelah pernyataan salin Anda akan memungkinkan Anda memeriksa untuk melihat apa yang telah disalin (di sini / app / tes adalah direktori target Anda pada gambar Docker): RUN file = "$ (ls -al / app / tests) "&& echo $ file (lihat posting ini untuk info lebih lanjut tentang echo )
David Yates
3

Saya memperbaiki ini berdasarkan masalah di proyek uji VS 2017 & 4.6.2 dengan langkah-langkah berikut:

  1. Hapus referensi ke Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll dan ekstensi
  2. Instal paket nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated
Ste Brown
sumber
3

Pastikan Anda telah memasang nuget "Microsoft.NET.Test.Sdk".

lordpansar
sumber
3

Saya tetap masalah ini dengan menginstal ulang semua pengujian terkait paket nuget untuk proyek tersebut: Xunit, Xunit.runner.vistualstudio,Microsoft.Net.Test.Sdk

n.shojaei
sumber
1

Saya mendapatkan masalah serupa dan melihat entah bagaimana app.configfile telah ditambahkan ke proyek pengujian saya. Menghapus file konfigurasi ini memperbaikinya untuk saya.

thatWiseGuy
sumber
1

Menggunakan .Net Core dengan pipeline build di TFS 2017, langkah Uji Visual Studio saya lewat tanpa benar-benar menjalankan pengujian apa pun. Harus mengedit langkah, "Opsi Eksekusi Lanjutan" -> "Opsi konsol lain" untuk menyertakan:

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

(Bidang itu juga berisi /platform:x64)

Menandai
sumber
1

Saya mendapatkan kesalahan ini karena kelas pengujian Unit saya bukan untuk umum.

Ex:

class ClientTests

Kesalahan dalam Keluaran:

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

Koreksi:

public class ClientTests

Pantai Jared
sumber
1

Saya akan membuang solusi saya ke heap. Dalam kasus saya, saya menambahkan beberapa proyek ke solusi yang ada bersama dengan proyek Uji untuk mereka. Kami menggunakan MSTest. Ada file UnitTest.testsettings sebelumnya yang diaktifkan pada solusi yang menyebabkan masalah kompatibilitas.

Mengklik pada file pengaturan menghapus cek dan uji coba berhasil untuk pengujian saya.

masukkan deskripsi gambar di sini

jwatts1980.dll
sumber
1

Temukan cara! Mungkin bukan yang paling ortodoks tetapi itu membantu saya dengan tergesa-gesa:

  1. Perbarui paket MSTest.TestAdapter dan MSTest.TestAdapterFramework ke 1.4.0 dari Tools> NuGet Package Manager.
  2. Bersihkan solusinya dan jalankan pengujian lagi.

Saya tidak berpikir ada yang khusus dengan versinya, tetapi memperbaruinya pasti membersihkan referensi apa pun yang buruk dalam solusi / proyek.

dave_077
sumber
0

Ini hanya untuk merekap solusi yang diajukan oleh @Sushil sebelumnya.

Ini adalah masalah yang diketahui di Team Foundation Server 2015 RTM + Pembaruan 1 dan akan diperbaiki di Pembaruan 2, referensi .

Ada solusi yang dijelaskan oleh @Sushil di sini , yang mencakup menambahkan file .runsettings yang memaksa runner pengujian ke kerangka kerja .Net yang lebih lama (harap diperhatikan bahwa Anda tidak harus menentukannya melalui dialog "Tambah / Edit Uji Coba" seperti menambahkannya secara langsung dalam proses pembuatan editor akan diabaikan).

Robek Østergaard
sumber
0

Dalam Visual Studio 2017 saya hanya menghapus dan menginstal ulang NUnitTestAdapter atau menginstal paket baru seperti paket NUnitTestAdapter. Dengan paket Framework dan masalah hilang.

Ali Yousefi
sumber
0

Saya mengalami masalah yang sama. Saya menggunakan Visual Studio 2017 Community Edition.

masukkan deskripsi gambar di sini

Saya menggunakan langkah-langkah ini untuk berhasil menemukan semua kasus pengujian saya dan berhasil menjalankannya:

  • Pertama pergi ke Ekstensi dan Pembaruan, instal Adaptor Uji NUnit3. Jika sudah punya, aktifkan saja.

  • Restart Visual Studio 2017 Anda, secara otomatis akan meminta untuk
    menginstal ekstensi Anda, jika prompt mengatakan untuk mengakhiri tugas untuk melanjutkan
    penginstalan, cukup klik "End Task".

  • Setelah itu, buat kembali Test Project Anda dan semua kasus pengujian sekarang akan diidentifikasi dan Anda sekarang dapat mulai menjalankan kasus pengujian Anda.

Willy David Jr
sumber
0

Dalam kasus saya Menginstal Ulang Adaptor Nunit3, Menghapus folder temp, Mengubah arsitektur dan tidak ada yang berhasil. Itu karena Daemon Resharper menyebabkan masalah.

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

Itu menyelesaikan masalah.

Riyaz Hameed
sumber
0

Kesalahan ini dapat terjadi untuk pengujian asinkron jika Anda memiliki tipe pengembalian yang salah. Jenis pengembalian harus Tugas, dan tidak batal.

pengguna3533716
sumber
0

Setelah menambahkan TestAdapterPath di komandan, ini berfungsi untuk saya:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"
dixiashi
sumber
Hal pertama, Anda harus memastikan bahwa test case dapat dijalankan di VS IDE.
dixiashi
0

Dalam kasus saya, pengujian ditemukan tetapi berjalan menghasilkan "Pengujian tidak Tersedia ... " dan (di) terkenal: "Pastikan penemu & pelaksana pengujian terdaftar dan setelan versi platform & kerangka kerja sesuai dan coba lagi."

kesalahan itu independen dari Visual Studio (diuji dari alat CLI dotnet dan uji UNit hampir telanjang) dan itu hanya ketika menargetkan .NET 4.7.1. aplikasi dotnetcore berfungsi dengan baik.

juga menjalankan tes dengan Nuint3 CLI nunit3-console.exe Tests.csproj menunjukkan kesalahan:

"Entah perakitan tidak berisi tes atau driver tes yang tepat belum ditemukan."

kesalahan ini karena adaptor uji tidak dapat ditemukan pada drive jaringan (yang dipetakan) atau berbagi dan diselesaikan dengan menyalinnya secara lokal dan menjalankan ulang.

Falco Alexander
sumber
0

Coba jalankan vstest.console.exedengan --diag:diag.txtdan memeriksa output. Bagi saya itu adalah kegagalan beban DLL untuk adaptor uji dari direktori kerja saya:

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.

Saya bekerja di sekitar ini dengan menambahkan di <loadFromRemoteSources enabled="true"/>bawah <runtime>di vstest.console.exe.config

andrew.rockwell
sumber
0

Saya menggunakan MSTest.

Saya menginstal dari Nuget versi terbaru MSTest.TestFramework dan mengganti OOB. Hapus referensi ke Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Kemudian Diinstal dari neget versi terbaru Microsoft.TestPlatform

Itu memungkinkan saya untuk menjalankan tes dengan perintah:

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

Tapi saya mendapat kesalahan yang sama. Akar penyebab kesalahan karena saya tidak menentukan adaptor uji yang mengurai rakitan dan menemukan tes.

Larutan:

  1. Instal paket nuget "MSTest.TestAdapter"

  2. Tentukan adaptor uji di akhir perintah:

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

MirrorBoy
sumber
0

Saya menghadapi masalah serupa ketika mencoba nUnit di VS 2017 dan itu bukan proyek inti. Memasang NUnit3TestAdaptermemperbaiki masalah.

Surendra Rayapati
sumber
0

Saya memecahkan masalah ini dengan menginstal NUnit3TestAdapter NuGet ke dalam proyek saya ( https://www.nuget.org/packages/NUnit3TestAdapter/ ).

dotnet add package NUnit3TestAdapter --version 3.17.0

File .csproj saya

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
    <PackageReference Include="NUnit" Version="3.12.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
    <PackageReference Include="RestSharp" Version="106.11.7" />
  </ItemGroup>

</Project>
Osanda Deshan
sumber
0

Pertanyaan ini jelas ditemukan oleh orang-orang dengan berbagai skenario, jawaban saya akan mencakup menjalankan tes XUnit pada proyek .NET Core menggunakan pipeline build di Azure DevOps tetapi dapat membantu orang lain juga.

  • Pastikan Anda memiliki adaptor uji XUnit yang diinstal dari nuget sesuai jawaban ini .
  • Di yaml untuk pipeline build Anda, tambahkan otherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1'ke langkah inputsAnda VSTest@2(dengan nomor versi yang disetel ke versi .NET Core apa pun yang Anda gunakan). Lihat dokumentasi ini untuk info lebih lanjut.
  • Meskipun ini tidak wajib, saya akan merekomendasikan juga menambahkan failOnMinTestsNotRun: truesehingga pipeline build akan melaporkan kegagalan jika tidak ada pengujian yang dijalankan.
  • Jika Anda menjalankan build pada saat ini, Anda mungkin mendapati bahwa pengujian Anda berjalan tetapi pipeline kemudian memberikan error The library 'hostpolicy.dll' required to execute the application was not found. Anda dapat mengatasi ini dengan mengubah filter Anda dari default **\*test*.dllke **\*test.dll(perhatikan tanda bintang yang dihapus), atau pola lain yang akan cocok dengan DLL proyek pengujian Anda. Alasannya adalah karena XUnit menempatkan file yang dipanggil testhost.dlldi direktori output, seperti yang dijelaskan dalam masalah github ini .

Jika Anda menggunakan pipeline lama yang tidak menggunakan yaml, opsi yang sama harus tersedia. Jawaban ini mencakup penambahan kerangka kerja, saya berasumsi juga akan ada opsi untuk "Gagal tugas jika jumlah minimum tes tidak berjalan" atau yang serupa.

Tim
sumber