Aspnetcore: dotnet-watch в проекте не обнаруживает новые файлы

Созданный на 8 мар. 2019  ·  3Комментарии  ·  Источник: dotnet/aspnetcore

Опишите ошибку

dotnet-watch в проекте, как описано в разделе «Разработка приложений ASP.NET Core с использованием средства отслеживания файлов» , и, в частности, в разделе « Запуск тестов с использованием 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_ tests и продолжит следить за дальнейшими изменениями файлов:

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

/ cc @natemcmaster

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 рейтинги

Смежные вопросы

glennc picture glennc  ·  117Комментарии

barrytang picture barrytang  ·  89Комментарии

danroth27 picture danroth27  ·  79Комментарии

moodya picture moodya  ·  153Комментарии

danroth27 picture danroth27  ·  130Комментарии