В этом руководстве мы воспользуемся существующим приложением 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 restore
dotnet 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