Aspnetcore: dotnet-watch on project erkennt keine neuen Dateien

Erstellt am 8. März 2019  ·  3Kommentare  ·  Quelle: dotnet/aspnetcore

Beschreibe den Fehler

dotnet-watch in einem Projekt, wie unter „Entwickeln von ASP.NET Core-Apps mit einem Datei-Watcher“ und insbesondere im Abschnitt Ausführen von Tests mit dotnet watch , erkennt keine neuen Dateien.

Reproduzieren

Erstellen Sie ein Verzeichnis für das Projekt:

mkdir DotNetWatcherIssueDemo

Wechseln Sie in das Projektverzeichnis:

cd DotNetWatcherIssueDemo

Initialisieren Sie es mit einem neuen Testprojekt:

dotnet new nunit

Starten Sie VS Code in dem Verzeichnis, das das Testprojekt enthält:

code .

Bitten Sie darum, das Projekt zu beobachten und Tests für Änderungen durchzuführen:

dotnet watch test

In diesem Stadium sollten Sie die Ausgabe sehen:

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...

Fügen Sie nun einen neuen Test zu 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 übernimmt die Änderung, führt _zwei_ Tests erfolgreich durch und sucht weiterhin nach weiteren Dateiänderungen:

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...

In einer separaten Shell cd in das Projektverzeichnis und eine neue Testdatei hinzufügen:

dotnet new nunit-test -n UnitTest2 -o .

Erwartetes Verhalten

Im letzten Schritt habe ich erwartet, dass dotnet watch die neue Dateiänderung aufnimmt, alle Tests erstellt und erneut ausführt, aber es tut sich nichts.

Es scheint, dass es eine statische Liste von Dateien erstellt und diese nur auf Änderungen überwacht. Wenn ich die Projektdatei berühre/erzwinge ( DotNetWatcherIssueDemo.csproj ), dann erkennt dotnet watch die Änderung, erstellt die Überwachungsliste neu und erkennt Änderungen an der hinzugefügten Datei, aber wieder nicht für neue Datei danach hinzugefügt.

Zusätzlicher Kontext

Ausgabe von 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

/cc @natemcmaster

affected-medium area-commandlinetools bug severity-minor

Hilfreichster Kommentar

Basierend auf dem folgenden Kommentar im Code ist dies eindeutig ein Fehler und fehlt:

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

Ich sage einen Fehler, denn wenn es sich um eine Einschränkung handelt, ist sie nirgendwo dokumentiert.

Alle 3 Kommentare

Basierend auf dem folgenden Kommentar im Code ist dies eindeutig ein Fehler und fehlt:

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

Ich sage einen Fehler, denn wenn es sich um eine Einschränkung handelt, ist sie nirgendwo dokumentiert.

Gibt es diesbezüglich Fortschritte?

+1 dafür.

Ich habe mit Verify ein ziemlich süßes Workflow-Setup, mit dem ich nur Tests durchlaufen, Ausgaben genehmigen und die Tests erneut ausführen lassen kann. Der einzige Teil fehlt, wenn ich meine Testsuite mit neuen Dateien erweitern möchte.

Eine Problemumgehung besteht darin, Testklassen immer wieder in dieselbe Datei hinzuzufügen und sie später aufzuteilen, aber es ist ein bisschen mühsam. Bearbeiten: Nicht so schlimm mit dem schnellen Refactoring , um die Klasse in eine neue Datei zu verschieben, wenn Sie sie später ausknocken.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

FourLeafClover picture FourLeafClover  ·  3Kommentare

Pixel-Lord picture Pixel-Lord  ·  3Kommentare

ermithun picture ermithun  ·  3Kommentare

UweKeim picture UweKeim  ·  3Kommentare

farhadibehnam picture farhadibehnam  ·  3Kommentare