Nunit: Mendukung `dotnet test` di .NET CLI dan .NET Core

Dibuat pada 23 Mar 2016  ·  49Komentar  ·  Sumber: nunit/nunit

Kita sudah dapat menjalankan pengujian nunit dengan dotnet run ( misalnya dalam komit chessie ini ) dengan nunitlite menggunakan aplikasi konsol. Dan berfungsi (lupakan dnxcore50 atm, seharusnya netstandard )

Tetapi untuk eksekusi tes di .NET CLI ( https://github.com/dotnet/cli ), perintahnya adalah dotnet test

dotnet test dialah yang harus memberikan dukungan dari ide ( ref dotnet/cli#1376 ) tentang find/debug/etc

Itulah jalan ke depan saat ini, dnx sudah usang ( #927 harus ditutup ) dan aspnet dan dnx pindah ke .NET CLI

Perpustakaan baru dotnet-test-nunit diperlukan untuk dotnet test

sama seperti dotnet-test-xunit (ref https://github.com/xunit/coreclr.xunit/pull/1 )

contoh project.json untuk proyek pengujian xunit (tes ref di dalam https://github.com/dotnet/cli ) adalah

{
    "version": "1.0.0-*",
    "dependencies": {
        "NETStandard.Library": "1.5.0-rc2-23911",
        "xunit": "2.1.0",
        "dotnet-test-xunit": "1.0.0-dev-91790-12"
     },
     "frameworks": {
         "netstandardapp1.5": { }
     },
     "testRunner": "xunit"
}

properti testRunner dibaca oleh dotnet test ( ref source ) dan menggunakan dotnet-test-{testRunner}

/cc @piotrpMSFT @livarcocc untuk info karena mereka bekerja di .NET CLI dan dotnet-test, dotnet-test-xunit karena info lebih lanjut bagus :smile:

Saya dapat membantu dengan itu, jika tidak apa-apa untuk Anda dan @piotrpMSFT katakan pergi ( saya pikir itu stabil, tapi lebih baik pastikan ):smile:

done enhancement high

Komentar yang paling membantu

Itu belum siap untuk prime time, tetapi saya memiliki tes NUnit .NET Core yang berjalan di konsol dan di Visual Studio. Masih ada beberapa masalah yang harus diselesaikan sebelum saya mengeluarkan alpha, tetapi kami sekarang lebih dekat karena kerja keras telah selesai dan itu tergantung pada detailnya.

Saya akan memposting detail tentang cara menguji dengan CI build setelah saya memperbaiki beberapa masalah. Saya akan sangat menghargai jika orang bisa menendang ban dan membantu saya menemukan masalah.

Berikut adalah tangkapan layar.

image

Semua 49 komentar

Kami sedang menunggu .NET Core untuk sedikit tenang sebelum kami melanjutkan dengan #927, itu sebabnya belum diperbarui dengan judul dan informasi baru. Saya berencana menunggu pengumuman apa pun yang mungkin keluar di //build sebelum melanjutkan, tetapi kami sangat menghargai bantuan apa pun yang bisa kami dapatkan. Rencana saya adalah mulai memberikan dukungan yang lebih lengkap untuk lebih banyak platform dengan rilis 3.4 musim panas ini termasuk .NET Core, UWP dan Xamarin.

Anda telah memberikan ringkasan yang ditulis dengan baik di sini, jadi saya akan menutup #927 dan menggunakan masalah ini untuk pelacakan selanjutnya. Jika Anda ingin membantu dengan masalah ini, maka kami dapat berkoordinasi, tetapi saya akan menerima bantuan Anda.

Langkah pertama dalam proses ini adalah membuat driver/agen PCL yang dapat memuat dan menjalankan tes tanpa terikat erat dengan versi tertentu dari NUnit Framework seperti NUnitLite dan Xamarin runner saat ini. Ini masih dalam tahap awal, tetapi pekerjaan yang sedang berjalan ada di proyek nunit.portable.agent .

Bantuan atau saran apa pun yang dapat diberikan oleh @piotrpMSFT atau @livarcocc juga akan sangat dihargai :smile:

@rprouse Saya memiliki bug di CLI untuk menulis dokumentasi yang lebih baik mengenai interaksi dan persyaratan antara dotnet test dan runner. Saya akan menyelesaikannya hari ini atau besok dan saya akan meletakkan tautannya di sini.

Ini adalah bug yang melacaknya: https://github.com/dotnet/cli/issues/1803.

Bagaimana ini? Saya ingin menggunakan ini, dan ekosistem dotnet cli tampaknya mulai stabil.

Saya membuat beberapa kemajuan, tetapi saya tidak ingin melakukan terlalu banyak sampai RC2 turun. Saya mulai muak mencoba mengikuti perubahan :senyum:

.NET Core RC2 telah dirilis dan info baru telah tersedia. Tautan untuk referensi.

Ada yang bisa saya bantu di sini? Ini adalah pemblokir untuk menyelesaikan beberapa port kami seperti StackExchange.Redis.

@NickCraver Saya pasti bisa menggunakan bantuan, pembacaan pertama dari protokol komunikasi tidak membuat segalanya menjadi sangat jelas :senyum:

Langkah pertama adalah memutuskan bagaimana kita akan mendekati ini. Saat ini kami memiliki versi portabel yang menargetkan .NET Core, tetapi terbatas. Saya sedang mempertimbangkan untuk membuat kerangka inti, tetapi saya tidak yakin apakah saya perlu atau harus.

Kemudian saya perlu melihat apa yang diperlukan untuk membuat ekstensi pengujian untuk perintah dotnet .

Terakhir, saya ingin mesin nunit dapat meluncurkan dan berkomunikasi dengan agen nunit inti sehingga konsol nunit3 dapat menjalankan pengujian unit .NET Core. Saya sudah mengerjakan ini, tetapi masih banyak pekerjaan yang harus dilakukan di sana.

Bagaimana Anda ingin membantu?

@rprouse Saya pikir Anda harus memiliki build inti agar dapat digunakan lintas platform, itu fitur penting.

Saya tidak yakin berapa banyak waktu yang bisa kita habiskan untuk ini vs. berinvestasi di tempat lain meskipun jujur, mengingat jumlah pekerjaan yang tersisa. Untuk saat ini, saya perlu mengeluarkan perpustakaan bagi banyak orang hilir yang menunggu untuk membangun perpustakaan dan aplikasi mereka. Saya benci mengatakan ini, tetapi mengingat kelambatan di sini vs. apa yang tersedia saat ini, saya pikir kita harus menyelesaikan porting semuanya ke xUnit, jika tidak, ratusan hingga ribuan pengembang menunggu di rantai rilis yang diblokir di sini.

Saya akan mencoba dan mengunjungi kembali ini setelah kami stabil dan waktu memungkinkan, tetapi (dan koreksi saya jika saya salah) saat ini kita berbicara tentang minggu kerja yang tersisa (melewati pos Anda) sebelum saya' d dapat menggunakan ini untuk menjalankan apa yang saya harap adalah port perpustakaan yang siap untuk dikirim. Dari sudut pandang tugas penulis, saya harus membuka blokir orang pada saya terlebih dahulu, lalu membantu hulu semampu saya.

@NickCraver daripada menghabiskan upaya porting ke xUnit, mungkin lebih mudah untuk membuat runner NUnitLite baris perintah untuk menjalankan tes .NET Core Anda. Ini bukan solusi yang sempurna, tetapi mungkin jumlah pekerjaan yang paling sedikit. Ini agak ketinggalan zaman, tetapi saya membuat blog tentang cara melakukannya di Testing .NET Core menggunakan NUnit 3 .

Saya melakukannya dengan cara itu untuk beberapa proyek pribadi dan itu fungsional.

Saya akan dengan senang hati membantu mendapatkan build dotnet-test-nunit yang tepat di luar sana. Saya yakin banyak orang akan mendapat manfaat. Sebagian besar kontrak yang didefinisikan dalam protokol sudah diimplementasikan di pustaka pembantu. Jika kita memiliki runner xplat nunit yang berfungsi, ini seharusnya tidak banyak bekerja.

Apakah akan membantu untuk memecah ini menjadi dua fase - semacam rilis "cepat dan kotor, mungkin memiliki peretasan yang buruk, tetapi setidaknya mari kita dapatkan sesuatu di luar sana" dan kemudian integrasi yang lebih lengkap nanti?

(Baru saja akan membangun tes dengan TFM dari netstandard1.3 akan sangat membantu untuk membebaskan saya untuk Noda Time, misalnya.)

@jskeet dan @NickCraver Anda dapat menggunakan NUnit hari ini melalui "retas" NUnitlite seperti yang disarankan

@roji : Itu bekerja dengan dnxcore50 (Saya telah menggunakannya dengan Noda Time untuk sementara waktu) - tetapi menggunakan netstandard1.3 , dependensi pada NUnit dan NUnitLite tidak valid.

@jskeet proyek pengujian saya menargetkan netcoreapp1.0 dan bergantung pada Nunit+NUnitLite 3.2.1. Saya punya "imports" : [ "dotnet54" ] dan berfungsi seperti pesona...

@roji : Terima kasih untuk itu... semoga saja...

@roji : Saya masih kesulitan menjalankan tes - dapatkah Anda menautkan ke tempat Anda melakukan ini di proyek pengujian Anda, sebagai contoh untuk diikuti?

@jskeet impor harus bekerja untuk Anda juga. RC2 mengubah beberapa hal, jadi saya akan menulis ulang posting blog saya tentang cara menguji dengan NUnit 3 dengan RC2 dan memposting kode ke GitHub. Saya akan menambahkan tautan di sini ketika sudah selesai, semoga pagi ini (EST).

@piotrpMSFT dapatkah Anda menghemat waktu saya dan mengarahkan saya ke pustaka pembantu untuk membuat dotnet-test-nunit ? Saya dapat mencari, tetapi saya sedang mengejar beberapa hal saat ini sehingga bantuan akan dihargai. Saya yakin Anda juga sibuk, jadi jika Anda tidak memilikinya, jangan menghabiskan waktu untuk itu, saya akan menemukannya.

Saya telah memposting posting blog yang diperbarui Pengujian .NET Core RC2 Menggunakan NUnit 3 untuk siapa saja yang tertarik.

@jskeet Anda memang memerlukan pernyataan impor di project.json Anda. Ini ditambahkan secara default di template .NET Core baru, tetapi perlu ditambahkan saat memutakhirkan.

Untuk project.json di runner konsol;

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }

Atau dalam sebuah majelis;

  "frameworks": {
    "netstandard1.5": {
      "imports": "dnxcore50"
    }

Saat memutakhirkan ke RC2, memiliki barang DNX lama di jalur saya juga menggigit saya. Sesuatu untuk diperiksa.

@rprouse : Terima kasih; Saya sekarang dapat membangun, dan tes berjalan di Windows. Di Linux saya melihat "Referensi objek tidak disetel ke turunan suatu objek." pesan di dotnet run , yang perlu saya selidiki lebih lanjut. Akan mencoba sampel minimal Anda untuk melihat apakah itu memiliki masalah yang sama ...

@jskeet , kami menggunakan pendekatan ini pada Windows dan Linux tanpa masalah. Lihat di sini dan di sini untuk contoh.

@oschwald : Yup, sepertinya masalah dengan "Referensi objek tidak disetel ..." adalah masalah yang sangat terpisah dengan dependensi. Sayang sekali pesan kesalahannya sangat tidak membantu (bahkan tanpa jejak tumpukan) - Saya menggali ke dalamnya.

@jskeet Ada beberapa penyebab, apakah ini milik Anda? https://github.com/dotnet/cli/issues/3075

@NickCraver : Tidak - Saya telah berhasil melakukan pemulihan dotnet.

Dalam kasus saya, saya memiliki file project.json yang berfungsi tanpa ketergantungan pada proyek lain, tetapi gagal. Saya perlu meluangkan lebih banyak waktu untuk membuat repro lengkap.

@jskeet Gotcha - relevan: https://github.com/dotnet/cli/issues/2469 dan saluran Slack sangat bagus untuk project.json live debug, mampir dengan contoh dan Anda biasanya dapat memulai dengan cukup cepat. Untuk saluran Slack, #general dan #dotnet-core cukup aktif, banyak orang mengalami ini dan membantu orang berikutnya.

Hmm... dan sekarang berhasil. Mungkin saja itu _adalah_ masalah yang sama yang dilaporkan @NickCraver , dan saya baru saja dotnet restore - mengerjakan proyek yang salah untuk memperbaikinya. Bagaimanapun, saya sekarang menjalankan tes Noda Time di Linux, jadi yay :) Terima kasih semuanya.

@piotrpMSFT atas permintaan saya untuk pointer, saya telah menemukan semua yang saya butuhkan dan sudah mulai bekerja.

Saya telah menambahkan PR awal untuk pelari dotnet-test-nunit di nunit/dotnet-test-nunit#1

Ini mengeksplorasi dan menjalankan tes, tetapi masih membutuhkan beberapa pekerjaan, pembersihan dan pengujian. Saya akan membuat umpan NuGet untuk artefak build lebih mudah diakses jika ada yang ingin bermain dengannya.

Jika ada yang punya ide tentang bagaimana saya bisa men-debug paket NuGet ketika dimuat oleh Visual Studio, saya bisa menggunakan bantuan. Sejauh ini, itu tidak berjalan di Visual Studio, tetapi itu bisa menjadi masalah pengaturan.

@rprouse : Saya akan senang melihat bagaimana Noda Time mengatasinya, jika itu berguna. Beri tahu saya jika ada hal khusus yang Anda ingin saya periksa. Terima kasih untuk semua pekerjaan Anda!

Itu belum siap untuk prime time, tetapi saya memiliki tes NUnit .NET Core yang berjalan di konsol dan di Visual Studio. Masih ada beberapa masalah yang harus diselesaikan sebelum saya mengeluarkan alpha, tetapi kami sekarang lebih dekat karena kerja keras telah selesai dan itu tergantung pada detailnya.

Saya akan memposting detail tentang cara menguji dengan CI build setelah saya memperbaiki beberapa masalah. Saya akan sangat menghargai jika orang bisa menendang ban dan membantu saya menemukan masalah.

Berikut adalah tangkapan layar.

image

@rprouse : Ada kemajuan pada CI build? Pasti ingin menendang ban; Noda Time menggunakan sejumlah _reasonable_ fitur NUnit, jadi ini harus menjadi awal yang baik. Sangat menantikan untuk dapat menjalankan tes di VS lagi. (Semoga NCrunch dan CodeRush untuk Roslyn mulai mendukungnya setelah dirilis juga...)

@jskeet dan orang lain yang tertarik untuk menendang ban dan membantu saya menguji sebelum saya merilis alpha, saya telah memperbarui repositori demo saya di cabang dotnet-test-nunit untuk menggunakan runner dotnet-test-nunit .

Harap laporkan masalah di nunit/dotnet-test-nunit repo .

Instruksi tingkat tinggi adalah;

Pembaruan: dotnet-test-nunit sekarang tersedia sebagai alfa di NuGet, pilih Include prereleases . Anda tidak perlu lagi memperbarui file nuget.config .

dotnet-test-nunit masih dalam pengembangan, jadi Anda perlu menambahkan file NuGet.Config ke solusi Anda untuk mengunduh paket NuGet dari umpan NUnit CI NuGet.

project.json Anda dalam proyek pengujian Anda akan terlihat seperti berikut;

project.json

{
    "version": "1.0.0-*",

    "dependencies": {
        "NUnitWithDotNetCoreRC2": "1.0.0-*",
        "NETStandard.Library": "1.5.0-rc2-24027",
        "NUnit": "3.2.1",
        "dotnet-test-nunit": "3.4.0-alpha-1"
    },
    "testRunner": "nunit",

    "frameworks": {
        "netstandard1.5": {
            "imports": [
                "dnxcore50",
                "netcoreapp1.0",
                "portable-net45+win8"
            ]
        }
    },

    "runtimes": {
        "win10-x86": { },
        "win10-x64": { }
    }
}

Garis yang menarik di sini adalah ketergantungan pada dotnet-test-nunit . Jangan ragu untuk menggunakan versi pra-rilis terbaru yang berakhiran -CI , yang terbaru dari cabang master. Perhatikan bahwa ketergantungan NUnitWithDotNetCoreRC2 adalah proyek yang sedang diuji.

Saya telah menambahkan "testRunner": "nunit" untuk menentukan NUnit 3 sebagai adaptor uji. Saya juga harus menambahkan impor untuk adaptor uji dan NUnit untuk diselesaikan. Terakhir, saya harus menambahkan runtimes . Jika ada yang bisa menjelaskan mengapa saya perlu melakukan itu, beri tahu saya.

Anda sekarang dapat menjalankan pengujian menggunakan Visual Studio Test Explorer, atau dengan menjalankan dotnet test dari baris perintah.

# Restore the NuGet packages
dotnet restore

# Run the unit tests in the current directory
dotnet test

# Run the unit tests in a different directory
dotnet test .\test\NUnitWithDotNetCoreRC2.Test\

Peringatan

Seperti yang saya katakan, ini masih dalam pengembangan. dotnet-test-nunit versi 3.3.0.39-CI yang tercantum di atas memiliki bug di mana ia akan mengeluarkan ArgumentException ketika mencoba untuk menyimpan file TestResult.xml .

Perhatikan juga bahwa baris perintah dotnet menelan baris kosong dan tidak bekerja dengan warna. Keluaran uji coba NUnit berwarna, tetapi Anda tidak akan melihatnya.

Bagian "menelan baris kosong" adalah bug yang diketahui: https://github.com/dotnet/cli/issues/2234

Terima kasih atas tautannya @jskeet , sepertinya warna juga merupakan bug yang diketahui, dotnet/cli#1977

ArgumentException telah diperbaiki di 3.3.0.49-CI . Saya akan memperbarui instruksi saya di atas dengan perbaikannya. Satu masalah luar biasa lainnya adalah bahwa saya saat ini tidak menyediakan nomor baris untuk pengujian ke pelari, jadi mengklik tes di Visual Studio Test Explorer tidak akan membawa Anda ke kode.

Apakah saya benar mengatakan belum ada dukungan argumen baris perintah, seperti --where dll? (Saya sepenuhnya mengerti bahwa ini masih awal - hanya mencoba memeriksa apakah ini sesuatu yang harus saya lakukan.)

Saya sudah mencoba project.json sedikit berbeda dengan Anda. Saya telah memasukkannya di bawah kata demi kata, tetapi perbedaan penting adalah:

  • Saya ingin menguji runtime desktop juga, jadi saya punya dua target kerangka kerja
  • Saya menggunakan netcoreapp1.0 bukan netstandard1.5
  • Saya telah menyertakan ketergantungan Microsoft.NETCore.App , dengan "type"="platform"
  • Lihat ma, tidak ada bagian runtime. (Mungkin karena beberapa perubahan di atas...)
{
  "buildOptions": {
    "keyFile": "../../NodaTime Release.snk",
    "embed": {
      "include":  [   
        "TestData/*"
      ]
    }
  },

  "configurations": {
    "Debug": {
      "buildOptions": {
        "define": [ "DEBUG", "TRACE" ]
      }
    },
    "Release": {
      "buildOptions": {
        "define": [ "RELEASE", "TRACE" ],
        "optimize": true
      }
    }
  },

  "dependencies": {
    "NodaTime": { "target": "project" },
    "NodaTime.Testing": { "target": "project" },
    "NUnit": "3.2.1",
    "dotnet-test-nunit": "3.3.0.49-CI",
    "Microsoft.CSharp": "4.0.1-rc2-24027",
    "System.Dynamic.Runtime": "4.0.11-rc2-24027",
    "System.Reflection.Extensions": "4.0.1-rc2-24027",
    "System.Xml.XDocument": "4.0.11-rc2-24027"
  },

  "testRunner": "nunit",

  "frameworks": {
    "net451": {
      "frameworkAssemblies": {
        "System.Runtime": "",
        "System.Threading.Tasks": "",
        "System.Xml.Linq": ""
      }
    },
    "netcoreapp1.0": {
      "imports" : [ "dnxcore50", "netcoreapp1.0", "portable-net45+win8" ],
      "buildOptions": {
        "define": [ "PCL" ]
      },
      "dependencies": {
        "Microsoft.NETCore.App": { 
          "version": "1.0.0-rc2-3002702",
          "type": "platform"
        },
        "System.Console": "4.0.0-rc2-24027",
      }
    }
  }
}

Hasil:

Test Count: 15141, Passed: 15141, Failed: 0, Inconclusive: 0, Skipped: 0

Woot. (Menggunakan net451 saya mendapatkan jumlah tes 15646, yang saya harapkan.)

Selanjutnya: mencoba hal yang sama pada mesin Linux (di mana project.json Anda mungkin tidak akan berfungsi tanpa modifikasi karena tidak menyebutkan Linux, tetapi milik saya, secara teori; karena itu, ini adalah mesin Ubuntu 16.04 jadi dotnet CLI agak menyatu).

Hmm. Tes di Linux belum selesai setelah 14 menit memakan 100% CPU. Perlu melihat lebih dekat apa yang terjadi di sana.

@jskeet

Apakah saya benar mengatakan belum ada dukungan argumen baris perintah, seperti --where dll?

Diuji dengan buruk, tetapi saya telah memasang --where dan sebagian besar parameter baris perintah umum. Saya masih memiliki masalah, nunit/dotnet-test-nunit#4 untuk memeriksa apakah semuanya terhubung dengan benar dan berfungsi dan menambahkan yang mungkin hilang. Sejauh ini, saya belum menguji banyak, tetapi saya telah menggunakan beberapa dengan menambahkannya di akhir perintah dotnet . Saya masih perlu mencari tahu persis bagaimana cara kerjanya. Sebagai contoh, opsi baris perintah --debug bekerja dengan baik dari solusi dotnet-test-nunit , tetapi ia mengeluarkan dotnet-test Error: 0 : Microsoft.DotNet.Cli.Utils.CommandUnknownException: No executable found matching command "dotnet-test-" ketika saya menjalankannya dari solusi pengujian saya. Saya juga tidak tahu bagaimana menghubungkan baris perintah bantuan ke kita untuk menunjukkan apa yang didukung.

Sementara itu, Anda dapat melihat https://github.com/nunit/dotnet-test-nunit/blob/master/src/dotnet-test-nunit/CommandLineOptions.cs untuk melihat opsi baris perintah apa yang menurut saya didukung :senyum:

Ah, ya - sepertinya dotnet test tidak memiliki fasilitas yang sama dengan dotnet run untuk memisahkan argumen ke kerangka pengujian dari argumen ke dotnet test itu sendiri. Saya sudah mencoba

dotnet test -- --help

dan

dotnet test -- --where=cat!=Slow

Hanya menggunakan

dotnet test --where=cat!=Slow

berfungsi dengan baik. Akan mengajukan permintaan fitur untuk itu - senang bisa benar-benar tidak ambigu.

Mengklik tes dan menavigasi ke kode sekarang diperbaiki di 3.3.0.60-CI .

Masih ada dua masalah prioritas tinggi, maka saya berencana melakukan rilis alfa di mana saya akan menutup masalah ini dan melacak semua yang ada di repositori baru. Kedua isu tersebut adalah;

  • [x] nunit/dotnet-test-nunit#22 Tambahkan Pesan dan Jejak Tumpukan ke Pengujian yang Gagal
  • [x] nunit/dotnet-test-nunit#12 TestContext.WriteLine tidak muncul di ringkasan pengujian TestExplorer

Sama seperti FYI, saya menjalankan tes Noda Time lagi hari ini di kotak Ubuntu saya, dan mereka selesai setelah sekitar 15 menit. Sepertinya mereka semua berjalan sekitar 5-6x lebih lambat di Linux i5 saya daripada di Win10 i7 saya. Tidak yakin berapa banyak hubungannya dengan CPU dan berapa banyak hubungannya dengan JIT - dan itu pasti di luar cakupan NUnit :)

@jskeet terima kasih atas pembaruannya, itu kabar baik. Apakah Anda memerlukan ikatan mono untuk pengujian Linux seperti yang ditunjukkan pada nunit/dotnet-test-nunit#9?

Bagi siapa saja yang menguji, paket NuGet terbaru yang bagus adalah 3.3.0.69-CI , silakan uji dengan itu. Sekarang tidak ada masalah luar biasa yang menurut saya cukup serius untuk memblokir rilis. Jika tidak ada yang dilaporkan minggu ini, kemungkinan saya akan membuat rilis alfa akhir minggu ini atau awal minggu depan. Setelah saya melakukannya, saya akan menutup masalah ini dan diskusi/masalah di masa mendatang dapat berlangsung di repo dotnet-test-nunit .

Uji sekarang atau selamanya tenanglah :smile:

@rprouse : Saya belum mencoba menjalankannya di Mono - hanya .NET Core di Linux. Itu bekerja dengan baik dengan project.json yang tepat di atas.

Akan membuat 69-CI berputar...

Satu perbedaan yang saya perhatikan antara ini dan runner aplikasi konsol adalah bahwa versi "dotnet test" tampaknya menyertakan waktu yang dihabiskan untuk menemukan tes dalam durasi keseluruhan, sedangkan perintah "dotnet run" yang saya gunakan dengan NUnitLite tidak . Di Noda Time, ini berarti jika saya menjalankan dengan --where=cat==Foo (tidak ada tes seperti itu dalam kategori itu), "dotnet test" melaporkan durasi 14 detik sedangkan "dotnet run" melaporkan durasi 0,01 detik - meskipun mereka berdua mengambil waktu yang hampir sama.

Apakah ini disengaja? Saya tentu saja tidak keberatan dengan perilaku itu, tetapi mungkin perlu dicatat di suatu tempat untuk menghindari orang berpikir itu sebenarnya lebih lambat.

@jskeet itu pengamatan yang bagus, memang demikian. Karena kami tidak memiliki mesin NUnit lengkap untuk menjalankan tes, kodenya lebih sederhana, tetapi saya mungkin dapat memulai jam pada acara pengujian pertama yang dimulai daripada membungkus uji coba. Saya akan memasukkan masalah.

Saya telah merilis versi alfa dotnet-test-nunit di GitHub di https://www.nuget.org/packages/dotnet-test-nunit/3.4.0-alpha-1 , jadi Anda tidak perlu lagi mengubah NuGet.config dan gunakan rilis CI.

Sekarang saya memiliki alpha keluar, saya akan menutup masalah ini. Tolong bantu saya menguji alfa dan laporkan masalah apa pun di https://github.com/nunit/dotnet-test-nunit/issues. Rilis final rencananya akan keluar pada akhir bulan dengan rilis NUnit 3.4. Saya akan merilis alfa dan beta yang diperbarui tergantung pada masalah yang ditemukan.

Saya telah memperbarui dokumentasi di readme untuk dotnet-test-nunit . Saya akan terus memperbaruinya.

https://github.com/nunit/dotnet-test-nunit

Seperti yang saya sebutkan sebelumnya, Anda tidak perlu menentukan runtime jika Anda menggunakan "type": "platform" untuk ketergantungan "Microsoft.NETCore.App" . Mengingat dokumen xUnit, saya pikir ini adalah pendekatan yang disukai.

Saat ini saya memiliki permintaan tarik yang berjalan melalui Travis - jika itu menjadi hijau, Waktu Noda akan tergantung pada ini, sehingga harus memberikannya _some_ penggunaan. Bagus sekali, Pak...

Satu kelemahan yang baru saja saya perhatikan - ini berarti saya tidak lagi dapat dengan mudah menguji dengan Mono di Linux. Saya percaya itu bukan masalah NUnit, ini pada dasarnya merupakan manifestasi dari https://github.com/dotnet/cli/issues/3073 tetapi untuk NUnit. Saya masih berharap itu bisa diperbaiki pada akhirnya; untuk saat ini saya akan menonaktifkan tes mono saya di Travis, dengan sedikit keengganan. ( dotnet test jelas merupakan masa depan.)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat