مرحبًا ، لقد أنشأت مشروعًا جديدًا dotnet nunit
وأتلقى هذا الخطأ عندما أحاول تنفيذ اختباراتي عبر Unit.ConsoleRunner.3.8.0.
Dotnet SDK الإصدار 2.1.4
نموذج مستودع يظهر الخطأ: https://github.com/VictorioBerra/nunit3-errors
قم بتشغيل ./build.ps1 لتنفيذ ملف الكعكة. بمجرد القيام بذلك ، سيتم تنزيل Unit.ConsoleRunner.3.8.0 من NuGet. لذلك بعد تشغيل ذلك أو تنزيل حزمة nuget ، يمكنك تخطي أعمال الكيك وتشغيل هذا فقط في PowerShell إذا كنت ترغب في:
.\tools\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\tests\Demo.Tests\bin\Release\netcoreapp2.0\Demo.Tests.dll
هذا لأنه ، على عكس مشاريع .NET Framework ، لا تحتوي مشاريع .NET Core على تبعيات مثل nunit.framework.dll إلى المجلد bin\{configuration}\{tfm}
عند الإنشاء. تحتاج إلى تشغيل dotnet publish
. بالنسبة للكيك ، هذا هو DotNetCorePublish
أو شاهد ما تفعله NUnit . ثم قمت بتشغيل الاختبارات على التجميعات في bin\{configuration}\{tfm}\publish
التي لا تحتوي على تبعيات.
dotnet test
بكل هذا النشر نيابة عنك قبل تمرير المسار \publish
إلى dotnet vstest
.
يعمل كل من dotnet vstest
و NUnit Console على التجميعات ، وليس المشاريع ، وبالتالي يتطلب منك النشر أولاً كما لو كنت تكتب اختبارات ذاتية التنفيذ.
Ahhhhhh هذا مفيد حقًا ومفيد شكرًا جزيلاً لك. إذا نظرت إلى المثال في الكعكة ، فستظهر بوضوح الانتقال إلى دليل bin لتنفيذ الاختبارات: https://cakebuild.net/api/Cake.Common.Tools.NUnit/NUnit3Aliases/5A473496
نأمل أن يرى أي شخص آخر يصطدم بهذا الأمر ويوفر بعض الوقت.
قبل أن أذهب بسرعة كبيرة: لا يعمل NUnit.ConsoleRunner على .NET Core حتى الآن. يعمل NUnitLite ، على الرغم من أن هذه هي أسهل طريقة لإجراء اختبارات NUnit: https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard
@ jnm2 هل
لا يدعم اختبار dotnet حاليًا تمرير خيارات سطر الأوامر إلى محول الاختبار ، لذلك لا يمكن لـ NUnit إنتاج TestResults.xml حتى الآن.
كانت هذه حالة الأشياء في آخر مرة نظرت فيها:
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);
}
}
أوافق على ذلك أنه من العار أنه ليس لدينا وحدة NUnit.Console كاملة الوظائف على .NET Core 2.0 حتى الآن. بمجرد أن أنتهي من العلاقات العامة الحالية الخاصة بي ، سأكون على هذا النحو إذا لم يهزمني أحد.
مرحبا ، أي تحديثات على هذا؟
https://github.com/nunit/nunit-console/issues/475 هو الموضوع الذي يجب اتباعه.
orihomie هذه قضية مغلقة. نحن عازمون على السؤال عن واحد مختلف؟
CharliePoole لا ، لقد واجهت للتو هذه المشكلة في خطة البناء الخاصة بي عندما حاولت تشغيل اختبارات netcore بواسطة * \ NUnit.Console-3.6.1 \ nunit3-console.exe وحصلت على استثناء يقودني هنا
orihomie لا يمكنك استخدام وحدة التحكم لـ .NET Core حتى الآن ، ولكن يمكنك استخدام dotnet test
.
https://github.com/nunit/docs/wiki/.NET-Core-and-.NET- قياسي
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-nunit
orihomie لمتابعة مسألة تشغيل اختبارات Net Core عبر وحدة التحكم ، راقب وحدة التحكم nunit / nunit # 478
التعليق الأكثر فائدة
أوافق على ذلك أنه من العار أنه ليس لدينا وحدة NUnit.Console كاملة الوظائف على .NET Core 2.0 حتى الآن. بمجرد أن أنتهي من العلاقات العامة الحالية الخاصة بي ، سأكون على هذا النحو إذا لم يهزمني أحد.