В этом руководстве мы воспользуемся существующим приложением WebApi (оно вычисляет сумму и произведение двух чисел), чтобы продемонстрировать варианты использования dotnet watch. Образец приложения специально содержит ошибку, которую мы исправим во время изучения.

Второй цикл статей по ASP.NET Core
1. Создание серверных служб для мобильных приложений.
2. Разработка приложений ASP.NET Core с помощью dotnet watch.
3. Создание справочных страниц веб-API ASP.NET с помощью Swagger.
4. Открытый веб-интерфейс для .NET (OWIN).
5. Выбор правильной среды разработки .NET на сервере.
Введение
dotnet watch — это инструмент для разработчиков, который выполняет команду dotnet при изменении исходных файлов. С его помощью можно компилировать, тестировать или публиковать изменения в коде.
Начало работы
Сначала скачайте образец приложения. Оно содержит два проекта, WebApp (веб-приложение) и WebAppTests (модульные тесты для веб-приложения).
В консоли перейдите в папку
WebAppи выполните команды:
dotnet restoredotnet run
Консоль отобразит сообщения (пример ниже), которые укажут на то, что приложение работает и ожидает запросы.
$ dotnet run
Hosting environment: Production
Content root path: C:/Docs/aspnetcore/tutorials/dotnet-watch/sample/WebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
В браузере перейдите по адресу http://localhost:5000/api/math/sum?a=4&b=5, вы увидите результат 9.
Если вы перейдете по адресу http://localhost:5000/api/math/product?a=4&b=5, то получите результат 20. Но вместо этого вы снова видите 9. Мы это исправим ниже.
Добавление dotnet watch в проект
1. Добавьте
Microsoft.DotNet.Watcher.Toolsв файл .csproj:<ItemGroup> <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" /> </ItemGroup>2. Выполните команду
dotnet restore.
Выполнение команд dotnet с помощью dotnet watch
Любую команду dotnet можно выполнить с помощью dotnet watch, например:
| Команда | Команда с watch |
|---|---|
| dotnet run | dotnet watch run |
| dotnet run -f net451 | dotnet watch run -f net451 |
| dotnet run -f net451 — --arg1 | dotnet watch run -f net451 — --arg1 |
| dotnet test | dotnet watch test |
Чтобы выполнить WebApp с помощью watcher, выполните команду dotnet watch run в папке WebApp. Консоль отобразит сообщения, что watch работает.
Внесение изменений с помощью dotnet watch
Убедитесь, что dotnet watch работает.
Давайте исправим ошибку в методе Product в MathController, чтобы он возвращал произведение, а не сумму:
public static int Product(int a, int b)
{
return a * b;
}
Сохраните файл. В консоли отобразятся сообщения, которые укажут на то, что dotnet watch обнаружил изменение в файле и перезапустил приложение.
Убедитесь, что http://localhost:5000/api/math/product?a=4&b=5 выдает правильный результат.
Выполнение тестов с помощью dotnet watch
- Измените метод
ProductвMathControllerк возврату суммы и сохраните файл.- В командной строке перейдите в
WebAppTests.- Выполните
dotnet restore.- Выполните
dotnet watch test. Вы увидите сообщение о том, что тест не прошёл и watcher ожидает изменение в файле:Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.</li> <li>Test Run Failed.- Исправьте метод
Productтак, чтобы он возвращал произведение.
dotnet watch обнаружит изменение в файле и перезапустит тесты. В консоли отобразится сообщение, что тест пройден успешно.
dotnet-watch на GitHub
dotnet-watch — это часть репозитория DotNetTools. Всё, что вы не нашли в этом руководстве, можно посмотреть именно там.
Автор: Microsoft
