Nbench: تعذر تحليل إصدار إطار العمل المحدد '2.1'

تم إنشاؤها على ١٥ أكتوبر ٢٠١٨  ·  7تعليقات  ·  مصدر: petabridge/NBench

dotnet nbench فشل مع السجل أدناه.

❯ dotnet nbench
Building for framework netcoreapp2.1...
  Benchmark.SimepleOneway.Local -> /SolutionDir/ProjectDir/bin/Release/netcoreapp2.1/Benchmark.SimepleOneway.Local.dll
Running .NET Core 2.1 tests for framework netcoreapp2.1...
OutputDir /SolutionDir/ProjectDir/PerfResults
The specified framework version '2.1' could not be parsed
The specified framework 'Microsoft.NETCore.App', version '2.1' was not found.
  - Check application dependencies and target a framework version installed at:
      /usr/local/share/dotnet/
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download
  - The following versions are installed:
      2.0.9 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      2.1.3 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
      2.1.5 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
bug benchmark-execution

ال 7 كومينتر

HIPERCUBE قد تكون هذه مشكلة في بيئتك - لكن دعني أتحقق منها مرة أخرى.

هل لديك global.json أو أي شيء في مشروعك يحدد إصدار وقت التشغيل؟

يمكن تأكيد مشاكل تشغيل NBench مع dotnet core 2.1

The specified framework version '2.1' could not be parsed
The specified framework 'Microsoft.NETCore.App', version '2.1' was not found.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download
  - The following versions are installed:
      2.0.6 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.0.7 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.0.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.1 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.2 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.3-servicing-26724-03 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.4 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      2.1.5 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

ليس لدي ملف gloabl.json وهناك مشاريع 2.1 أخرى تعمل بشكل جيد. لقد قمت أيضًا بتثبيت وقت التشغيل 2.1 للتحقق مما إذا كان هناك عدم تطابق في الإصدار ولكنه لا يزال لا يعمل.

إذا كانت هناك أي مساعدة ، فقد وجدت إضافة <RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion> إلى .csproj الخاص بي لإصلاح المشكلة (يذهب الرصيد إلى @ Rene-Sackers للحصول على الحل الذي أدرجته هنا: https://github.com/dotnet/cli/issues/ 10111 # issuecomment-429014700).

يبدو أن هذه مشكلة في dotnet CLI ، بقدر ما أستطيع أن أقول - البحث في بعض المشكلات المرتبطة وآخرون. الأخطاء المكتوبة هنا ليست من NBench - إنها من عملية dotnet التي يولدها dotnet-nbench لتنفيذ عداء الاختبار.

لدي شعور بأن السبب الجذري للمشكلة قد يكون الطريقة التي نطلق بها على عملية dotnet ، باستخدام هذه الفئة DotNetMuxer قمنا باستيرادها من ASP.NET Core:

https://github.com/petabridge/NBench/blob/557f2fbca250a4a45636f5e4b41b58b8440b33f2/src/NBench.Runner.DotNetCli/DotNetMuxer.cs#L1 -L74

لقد أنشأت مشروع استنساخ: https://github.com/Aaronontheweb/NBenchNetCore2.1Repro

عندما أتصل بـ dotnet build ثم dotnet nbench في نموذج المشروع هناك ، أحصل على الناتج التالي:

λ  dotnet nbench
Building for framework netcoreapp2.1...
  NBenchRepro -> C:\Repositories\NBenchNetCore2.1Repro\NBenchRepro\bin\Release\netcoreapp2.1\NBenchRepro.dll
Running .NET Core 2.1.0 tests for framework netcoreapp2.1...
OutputDir C:\Repositories\NBenchNetCore2.1Repro\NBenchRepro\PerfResults
Executing Benchmarks in C:\Repositories\NBenchNetCore2.1Repro\NBenchRepro\bin\Release\netcoreapp2.1\NBenchRepro.dll
------------ STARTING NBenchRepro.CounterPerfSpecs+Benchmark ----------
--------------- BEGIN WARMUP ---------------
Elapsed: 00:00:00.1657419
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 153,490,119.28 , ns / operations: 6.52
--------------- END WARMUP ---------------

--------------- BEGIN WARMUP ---------------
Elapsed: 00:00:00.1663968
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 152,886,017.04 , ns / operations: 6.54
--------------- END WARMUP ---------------

--------------- BEGIN WARMUP ---------------
Elapsed: 00:00:00.1670527
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 152,285,739.77 , ns / operations: 6.57
--------------- END WARMUP ---------------

--------------- BEGIN RUN ---------------
Elapsed: 00:00:00.1659459
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 153,301,431.37 , ns / operations: 6.52
--------------- END RUN ---------------

--------------- BEGIN RUN ---------------
Elapsed: 00:00:00.1654938
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 153,720,223.96 , ns / operations: 6.51
--------------- END RUN ---------------

--------------- BEGIN RUN ---------------
Elapsed: 00:00:00.1651669
[Counter] TestCounter - operations: 25,439,744.00 ,operations: /s 154,024,468.58 , ns / operations: 6.49
--------------- END RUN ---------------

--------------- RESULTS: NBenchRepro.CounterPerfSpecs+Benchmark ---------------
Test to ensure that a minimal throughput test can be rapidly executed.
--------------- DATA ---------------
[Counter] TestCounter: Max: 25,439,744.00 operations, Average: 25,439,744.00 operations, Min: 25,439,744.00 operations, StdDev: 0.00 operations
[Counter] TestCounter: Max / s: 154,024,468.58 operations, Average / s: 153,682,041.30 operations, Min / s: 153,301,431.37 operations, StdDev / s: 363,027.74 operations

--------------- ASSERTIONS ---------------
[PASS] Expected [Counter] TestCounter to must be greater than 10,000,000.00 operations; actual value was 153,682,041.30 operations.

------------ FINISHED NBenchRepro.CounterPerfSpecs+Benchmark ----------

استخدام NBench 1.2.2 و dotnet --version 2.1.300

لذلك يبدو هذا إلى حد كبير مثل مشكلة البيئة ، كما كان الحال في كثير من الأحيان مع مشاكل مماثلة مع dotnet xunit في الماضي. إذا كان بإمكانك تزويدنا ببعض المعلومات الإضافية حول شكل بيئتك أو مواصفات الاستنساخ ، فسأعيد فتح هذه المشكلة وسأستمر في التخلص منها.

في غضون ذلك ، يمكنك تجربة حل بديل عن طريق تحديد إصدار وقت تشغيل صريح وفقًا لاقتراح @ C-Babbage.

متابعة هذا البعض - كان قادرًا على إعادة إنتاج هذه المشكلة بنفسي أثناء العمل على https://github.com/petabridge/Petabridge.Tracing.Zipkin/pull/68

لقد توصلت إلى نفس النتيجة التي توصلت إليها فرق Entity Framework و XUnit: هذه مشكلة في CLI نفسها ويبدو أن الحل البديل يحدد RuntimeFrameworkVersion داخل مشاريع الاختبار الخاصة بك. يمنح ذلك CLI المعلومات الضرورية التي يحتاجها لحل وقت تشغيل .NET Core بشكل صحيح.

نأمل أن يتم تحسين هذا في المستقبل ، ولكن هذا الخطأ يحدث بعد أن يقوم dotnet-nbench بتدوير عملية dotnet جديدة لتشغيل المواصفات - إنها مشكلة CLI.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

Aaronontheweb picture Aaronontheweb  ·  5تعليقات

andygarcia picture andygarcia  ·  36تعليقات

GregariousJB picture GregariousJB  ·  7تعليقات

prabirshrestha picture prabirshrestha  ·  13تعليقات

jasonmalinowski picture jasonmalinowski  ·  19تعليقات