Aspnetcore: لا تكتشف dotnet-watch في المشروع ملفات جديدة

تم إنشاؤها على ٨ مارس ٢٠١٩  ·  3تعليقات  ·  مصدر: dotnet/aspnetcore

صف الخلل

dotnet-watch في مشروع كما هو موصوف "تطوير تطبيقات ASP.NET الأساسية باستخدام مراقب الملفات" ، وعلى وجه التحديد لا يكتشف قسم تشغيل الاختبارات باستخدام dotnet watch إضافات الملف الجديد.

لإعادة إنتاج

قم بإنشاء دليل للمشروع:

mkdir DotNetWatcherIssueDemo

التغيير إلى دليل المشروع:

cd DotNetWatcherIssueDemo

ابدأ بمشروع اختبار جديد:

dotnet new nunit

قم بتشغيل VS Code في الدليل الذي يحتوي على مشروع الاختبار:

code .

اطلب مشاهدة المشروع وإجراء اختبارات على التغييرات:

dotnet watch test

في هذه المرحلة ، سترى الناتج:

watch : Started
Build started, please wait...
Build completed.

Test run for A:\temp\DotNetWatchIssueDemo\bin\Debug\netcoreapp2.2\DotNetWatchIssueDemo.dll(.NETCoreApp,Version=v2.2)
Microsoft (R) Test Execution Command Line Tool Version 15.9.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

Total tests: 1. Passed: 1. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 0.9364 Seconds
watch : Exited
watch : Waiting for a file to change before restarting dotnet...

أضف الآن اختبارًا جديدًا إلى UnitTest1.cs :

diff --git a/UnitTest1.cs b/UnitTest1.cs
index 66ec70e..f6406e7 100644
--- a/UnitTest1.cs
+++ b/UnitTest1.cs
@@ -14,5 +14,11 @@ namespace Tests
         {
             Assert.Pass();
         }
+
+        [Test]
+        public void Test2()
+        {
+            Assert.Pass();
+        }
     }
 }
\ No newline at end of file

سيقوم dotnet watch بالتقاط التغيير وتشغيل _two_ اختبارين بنجاح والاستمرار في مراقبة تغييرات الملف الإضافية:

watch : Started
Build started, please wait...
Build completed.

Test run for A:\temp\DotNetWatchIssueDemo\bin\Debug\netcoreapp2.2\DotNetWatchIssueDemo.dll(.NETCoreApp,Version=v2.2)
Microsoft (R) Test Execution Command Line Tool Version 15.9.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

Total tests: 2. Passed: 2. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 0.9698 Seconds
watch : Exited
watch : Waiting for a file to change before restarting dotnet...

في غلاف منفصل ، cd في دليل المشروع وأضف ملف اختبار جديد:

dotnet new nunit-test -n UnitTest2 -o .

سلوك متوقع

في الخطوة الأخيرة ، توقعت أن يقوم dotnet watch بالتقاط تغيير الملف الجديد وإنشاء وإعادة تشغيل جميع الاختبارات ، لكنه لا يفعل شيئًا.

يبدو أنه ينشئ قائمة ثابتة من الملفات ويراقبها فقط من أجل التغييرات. إذا لمست / فرضت حفظ ملف المشروع ( DotNetWatcherIssueDemo.csproj ) ، فإن dotnet watch يكتشف التغيير ، ويعيد إنشاء قائمة المراقبة ويكتشف التغييرات في الملف المضاف ، ولكن مرة أخرى ، ليس لأي ملف جديد تمت إضافة الملف بعد ذلك.

سياق إضافي

الناتج dotnet --info :

.NET Core SDK (reflecting any global.json):
 Version:   2.2.101
 Commit:    236713b0b7

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.2.101\

Host (useful for support):
  Version: 2.2.0
  Commit:  1249f08fed

.NET Core SDKs installed:
  1.1.8 [C:\Program Files\dotnet\sdk]
  1.1.9 [C:\Program Files\dotnet\sdk]
  1.1.10 [C:\Program Files\dotnet\sdk]
  1.1.11 [C:\Program Files\dotnet\sdk]
  2.1.101 [C:\Program Files\dotnet\sdk]
  2.1.103 [C:\Program Files\dotnet\sdk]
  2.1.104 [C:\Program Files\dotnet\sdk]
  2.1.200 [C:\Program Files\dotnet\sdk]
  2.1.201 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.300 [C:\Program Files\dotnet\sdk]
  2.1.400 [C:\Program Files\dotnet\sdk]
  2.1.402 [C:\Program Files\dotnet\sdk]
  2.1.403 [C:\Program Files\dotnet\sdk]
  2.1.500 [C:\Program Files\dotnet\sdk]
  2.1.502 [C:\Program Files\dotnet\sdk]
  2.2.101 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

natemcmaster / cc

affected-medium area-commandlinetools bug severity-minor

التعليق الأكثر فائدة

بناءً على التعليق التالي في الكود ، من الواضح أن هذا خطأ وينقصه:

https://github.com/aspnet/AspNetCore/blob/1f050242559e7b90ff6c4ee7f99d92b3a5af5a62/src/Tools/dotnet-watch/src/Internal/MsBuildFileSetFactory.cs#L66 -L67

أقول خطأ لأنه إذا كان قيدًا فلن يتم توثيقه في أي مكان.

ال 3 كومينتر

بناءً على التعليق التالي في الكود ، من الواضح أن هذا خطأ وينقصه:

https://github.com/aspnet/AspNetCore/blob/1f050242559e7b90ff6c4ee7f99d92b3a5af5a62/src/Tools/dotnet-watch/src/Internal/MsBuildFileSetFactory.cs#L66 -L67

أقول خطأ لأنه إذا كان قيدًا فلن يتم توثيقه في أي مكان.

أي تقدم في هذا؟

+1 لهذا.

لقد حصلت على إعداد رائع لسير العمل مع Verify ، مما يسمح لي فقط بالتكرار في الاختبارات ، والموافقة على المخرجات وإعادة تشغيل الاختبارات. الجزء الوحيد الذي ينقصني هو عندما أرغب في توسيع مجموعة الاختبار الخاصة بي بملفات جديدة.

الحل البديل هو الاستمرار في إضافة فئات الاختبار في نفس الملف ثم تقسيمها لاحقًا ، ولكنه أمر مؤلم بعض الشيء. تحرير: ليس سيئًا للغاية مع إعادة البناء السريع لنقل الفصل إلى ملف جديد عندما تقوم بطردهم لاحقًا.

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

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

FourLeafClover picture FourLeafClover  ·  3تعليقات

aurokk picture aurokk  ·  3تعليقات

markrendle picture markrendle  ·  3تعليقات

rbanks54 picture rbanks54  ·  3تعليقات

Kevenvz picture Kevenvz  ·  3تعليقات