Halo, saya membuat proyek baru dengan dotnet nunit
dan saya menerima kesalahan ini ketika saya mencoba dan menjalankan tes saya melalui Unit.ConsoleRunner.3.8.0 .
Dotnet SDK versi 2.1.4
Repositori contoh menunjukkan kesalahan: https://github.com/VictorioBerra/nunit3-errors
Jalankan ./build.ps1 untuk mengeksekusi file kue. Setelah Anda melakukannya, itu akan mengunduh Unit.ConsoleRunner.3.8.0 dari NuGet. Jadi setelah Anda menjalankannya atau mengunduh paket nuget, Anda dapat melewati bisnis kue dan jalankan saja ini di PowerShell jika Anda suka:
.\tools\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\tests\Demo.Tests\bin\Release\netcoreapp2.0\Demo.Tests.dll
Ini karena, tidak seperti proyek .NET Framework, proyek .NET Core tidak memiliki dependensi seperti nunit.framework.dll yang disalin ke folder bin\{configuration}\{tfm}
saat dibuat. Anda perlu menjalankan dotnet publish
. Untuk Cake, itu DotNetCorePublish
atau lihat apa yang dilakukan NUnit . Kemudian Anda menjalankan tes pada rakitan di bin\{configuration}\{tfm}\publish
yang memang berisi dependensi.
dotnet test
melakukan semua penerbitan ini untuk Anda sebelum meneruskan jalur \publish
ke dotnet vstest
.
Baik dotnet vstest
dan NUnit Console beroperasi pada rakitan, bukan proyek, dan oleh karena itu mengharuskan Anda untuk memublikasikan terlebih dahulu seperti yang Anda lakukan jika Anda menulis pengujian yang dijalankan sendiri.
Ahhhhhhh ini benar-benar mencerahkan dan membantu terima kasih banyak. Jika Anda melihat contoh di kue, mereka dengan jelas menunjukkan navigasi ke direktori bin untuk menjalankan tes: https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496
Semoga siapa pun yang menabrak ini akan melihat ini dan menghemat waktu.
Sebelum saya pergi terlalu cepat: NUnit.ConsoleRunner belum berjalan di .NET Core. NUnitLite melakukannya, meskipun ini adalah cara termudah untuk menjalankan tes NUnit: https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
Contoh: https://github.com/jnm2/ApiContractGenerator/blob/aa3c085fdb9c978b252b630187325d6eeb504235/build.cake#L21 -L25
@jnm2 apakah contoh Anda menghasilkan hasil tes? Dari wiki yang Anda posting:
pengujian dotnet saat ini tidak mendukung penerusan opsi baris perintah ke adaptor pengujian, jadi NUnit belum dapat menghasilkan TestResults.xml.
Ini adalah keadaan terakhir kali saya melihat:
https://github.com/jnm2/Cake.SqlServer/blob/ed6093e268114ef640851414e64aabec49d284e8/build.cake#L114 -L134
try
{
DotNetCoreTest("src/Tests/Tests.csproj", new DotNetCoreTestSettings
{
Configuration = configuration,
NoBuild = true,
Logger = "trx",
ArgumentCustomization = a => a.AppendSwitchQuoted("--results-directory", tempDirectory)
});
}
finally
{
if (parameters.IsRunningOnAppVeyor)
{
// dotnet test cannot do more than one target framework per TRX file
// AppVeyor seems to ignore all but the first TRX upload– perhaps because the test names are identical
// https://github.com/Microsoft/vstest/issues/880#issuecomment-341912021
foreach (var testResultsFile in GetFiles(tempDirectory + "/**/*.trx"))
AppVeyor.UploadTestResults(testResultsFile, AppVeyorTestResultsType.MSTest);
}
}
Saya setuju bahwa sayang sekali kami belum memiliki NUnit.Console yang berfungsi penuh di .NET Core 2.0. Setelah saya menyelesaikan PR saya saat ini, saya menuju ke sana jika tidak ada yang mengalahkan saya untuk itu.
Hai, ada pembaruan tentang ini?
https://github.com/nunit/nunit-console/issues/475 adalah utas yang harus diikuti.
@orihomie Ini adalah masalah tertutup. Kami Anda berniat untuk bertanya tentang yang berbeda?
@CharliePoole Tidak, saya baru saja menemui masalah ini pada rencana pembangunan saya ketika mencoba meluncurkan .netcore tes oleh *\NUnit.Console-3.6.1\nunit3-console.exe dan mendapat pengecualian yang membawa saya ke sini
@orihomie Anda belum dapat menggunakan konsol untuk .NET Core, tetapi Anda dapat menggunakan dotnet test
.
https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit
@orihomie Untuk
Komentar yang paling membantu
Saya setuju bahwa sayang sekali kami belum memiliki NUnit.Console yang berfungsi penuh di .NET Core 2.0. Setelah saya menyelesaikan PR saya saat ini, saya menuju ke sana jika tidak ada yang mengalahkan saya untuk itu.