как проверить код в visual studio code
В этом руководстве показано, как автоматизировать модульное тестирование путем добавления тестового проекта в решение.
Предварительные требования
Создание проекта модульного теста
Модульные тесты обеспечивают автоматическое тестирование программного обеспечения во время разработки и публикации. В этом руководстве используется платформа тестирования MSTest. MSTest — это одна из трех доступных для выбора платформ тестирования. Другими являются xUnit и nUnit.
Запустите Visual Studio Code.
Создайте проект модульного теста с именем StringLibraryTest.
Шаблон проекта создает файл UnitTest1.cs со следующим кодом:
Исходный код, созданный шаблоном модульного теста, выполняет следующие действия.
При запуске модульного теста автоматически выполняются все методы теста, помеченные атрибутом [TestMethod], в тестовом классе, помеченном атрибутом [TestClass].
Добавьте тестовый проект в решение.
Добавление ссылки на проект
Выполните следующую команду:
Добавление и выполнение методов модульного теста
При запуске модульного теста Visual Studio выполняет каждый метод, помеченный атрибутом TestMethodAttribute, в классе, помеченном атрибутом TestClassAttribute. Метод теста завершается, когда происходит первый сбой или когда все тесты, содержащиеся в методе, будут успешно выполнены.
В самых распространенных тестах вызываются члены класса Assert. Многие методы утверждения (Assert) принимают по крайней мере два параметра, из которых один представляет ожидаемый результат теста, а второй — фактический результат теста. Наиболее популярные из этих методов класса Assert перечислены в следующей таблице:
Вы можете также использовать метод Assert.ThrowsException в методе теста, чтобы указать тип исключения, которое он должен создавать. Такой тест считается не выполненным, если заявленное исключение не было создано.
Вы определите три метода, каждый из которых вызывает метод Assert для каждого элемента в массиве строк. Вы вызовете перегруженную версию метода, которая позволяет указать сообщение об ошибке, отображаемое в случае сбоя теста. В этом сообщении определяется строка, вызвавшая сбой.
Создание методов теста:
Откройте файл StringLibraryTest/UnitTest1.cs и замените все его содержимое следующим кодом:
Тест на символы верхнего регистра в методе TestStartsWithUpper включает заглавную греческую букву «альфа» (U+0391) и заглавную кириллическую букву «М» (U+041C). Тест на символы нижнего регистра в методе TestDoesNotStartWithUpper включает строчную греческую букву «альфа» (U+03B1) и строчную кириллическую букву «г» (U+0433).
В выходных данных терминала показано, что все тесты пройдены.
Обработка сбоев теста
Выполняя разработку на основе тестирования (TDD), вы сначала пишете тесты, и они завершаются сбоем при первом запуске. Затем вы добавляете код в приложение, и тест успешно выполняется. В рамках этого учебника вы создали тест после написания кода приложения для его проверки, поэтому тест был пройден. Чтобы проверить, завершается ли тест ошибкой, как и ожидается, добавьте недопустимое значение во входные данные теста.
В выходных данных терминала показано, что один тест завершается ошибкой, и выдается сообщение об ошибке для непройденного теста. «Assert.IsFalse failed. Expected for ‘Error’: false; actual: True». Из-за этого сбоя строки в массиве, расположенные после слова «Error», не проверялись.
Удалите строку «Error», которую вы добавили на шаге 1. Еще раз запустите тест. Теперь тесты будут пройдены.
Тестирование версии выпуска для библиотеки
Теперь, когда все тесты пройдены при выполнении сборки в режиме отладки, следует запустить все тесты еще раз, теперь уже для сборки библиотеки в режиме выпуска. Некоторые факторы, например оптимизации компилятора, иногда могут вызывать разное поведение сборки в режимах отладки и выпуска.
Запустите тесты с конфигурацией сборки «Выпуск».
Все тесты будут пройдены.
Отладка тестов
Visual Studio Code запускает тестовый проект с присоединенным отладчиком. Выполнение будет прервано в любой точке останова, добавленной в тестовый проект или базовый код библиотеки.
Дополнительные ресурсы
Следующие шаги
В этом руководстве вы выполнили модульное тестирование библиотеки классов. Чтобы сделать библиотеку доступной другим пользователям, опубликуйте ее в NuGet в качестве пакета. Чтобы узнать, как это делать, следуйте указаниям в руководстве по NuGet:
Если библиотека опубликована как пакет NuGet, ее могут устанавливать и использовать другие пользователи. Чтобы узнать, как это делать, следуйте указаниям в руководстве по NuGet:
Библиотеку не нужно распространять как пакет. Ее можно объединить с консольным приложением, где она используется. Чтобы узнать, как опубликовать консольное приложение, ознакомьтесь с предыдущим руководством в этой серии:
Visual Studio Code – редактор кода для Linux, OS X и Windows
За свою долгую историю существования Microsoft выпустил немало инструментов разработки. Но так уж сложилось что на слуху у всех только лишь Visual Studio – большая и мощная IDE «комбайн» предназначенная для всего и вся. Развивается этот продукт уже более двух десятков лет и вобрал в себя самые разные функции. Многим этот инструментарий нравится и иногда даже задавали вопрос – будет ли перенесен Visual Studio на другие платформы. На что чаще всего получали ответ нет. Наверное, понятно почему, в целом такое портирование будет дорогим и неоправданно сложным, уж очень много всего в этой IDE завязано на Windows.
И вот, этой весной для многих неожиданностью было то что Microsoft представил новый продукт под названием Visual Studio Code, да еще и работающий сразу на трех платформах, Linux, OS X и Windows. Не замахиваясь на все функции полноценной IDE, внутри Microsoft решили переосмыслить подход, по которому строится основной инструментарий программиста и начали с самого главного – редактора кода. Visual Studio Code это именно редактор, но при этом обладающий функциями IDE, полагающийся на расширения.
Уже сейчас вы можете использовать Visual Studio Code для создания веб-проектов ASP.NET 5 или Node.js (в чем-то даже удобнее чем в «взрослой» Visual Studio), использовать различные языки, такие как JavaScript, TypeScript, C#, работать с пакетными менеджерами npm, скаффолдингом yeoman и даже осуществлять отладку. Плюсом ко всему будет отличный «интеллисенс», поддержка сниппетов кода, рефакторинг, навигация, многооконность, поддержка git и многое другое.
Установка Visual Studio Code
Mac OS X
Совет: если вы хотите чтобы Visual Studio Code стартовал из терминала добавьте в
Linux
Совет: если вы хотите чтобы Visual Studio Code стартовал из терминала добавьте на него ссылку
Windows
Совет: если вы хотите чтобы Visual Studio Code стартовал из терминала сделайте logon/logoff, соответствующие пути к файлу прописываются в переменной PATH самим установщиком
Дополнительные инструменты
Без инструментария Visual Studio Code годится разве что для простого редактирования файлов, для полноценной работы понадобится сопутствующий инструментарий, который зависит от ваших целей и задач:
Начало работы
Чтобы попробовать в деле VS Code, проще всего создать веб-проект Node. Для этого установите Node на свой компьютер (ссылка выше) и выполните следующие команды:
В текущем каталоге будет создан проект, который можно будет открыть в Visual Studio Code. Для того чтобы проверить, что все работает как надо, выполните команду npm start и запустите браузер по адресу http://localhost:3000.
После всех этих действий просто запустите VS Code в папке с проектом
Если вы хотите попробовать возможности VS Code на примере ASP.NET 5 то можете воспользоваться инструкцией по адресу https://code.visualstudio.com/Docs/ASPnet5.
Базовые возможности Visual Studio Code
Как и многие редакторы кода, VS Code использует распространенную схему расположения основных элементов – слева обозреватель файлов, справа редактор кода. В дополнение к этому есть специфичные элементы, обеспечивающие навигацию и выполнение специальных команд.
Файлы, папки, и проекты
Расположение основных элементов
VS Code обладает интуитивно понятной и простой схемой расположения основных элементов. Интерфейс разделен на четыре основных блока, это:
Редактор VS Code может открыть для редактирования на экране до трех файлов одновременно, располагая их друг за другом справа. Открыть дополнительные редакторы можно различными способами:
Ctrl (Mac: Cmd) и кликнуть на файле в обозревателе
Ctrl+\ для того чтобы разделить активный текущий редактор на два
Open to the Side в контекстном меню файла в обозревателе
Совет: Вы можете переместить сайдбар слева на право с помощью меню View, Move Sidebar а так же включить его видимость с помощью клавиатуры (Ctrl+B).
Палитра команд
Самым главным инструментом взаимодействия с редактором в VS Code является палитра команд. Вызвать ее можно через клавиатуру, нажав на комбинацию Ctrl+Shift+P. Множество команд перечисленных в палитре тоже привязаны к клавишам.
Введите в строку команды знак вопроса? и тогда вы получите перечень команд которые работают в текущем контексте:
Некоторые часто используемые команды:
Обозреватель
Обозреватель предназначен для открытия и управления файлами находящимися в папке вашего проекта. Вы можете осуществлять множество привычных операций по созданию, изменению имени, удалению файлов и папок, и их перемещению.
Файлы, которые вы редактировали или открывали двойным щелчком в обозревателе, помещаются в верхнюю часть обозревателя и получают статус Working files:
Автосохранение
По умолчанию, VS Code работает в режиме явного сохранения, которое вы можете выполнить, нажав на комбинацию Ctrl+S. Этот режим совместим с большинством инструментов следящих за статусом файлов (например bower). Можно включить и режим автоматического сохранения (Auto Save), нажав Ctrl+Shift+P и набрать auto.
Поиск
Нажимите Ctrl+Shift+F и введите интересующую вас фразу. Результаты поиска будут сгруппированы, в дополнение вы можете развернуть узел группы чтобы посмотреть множественные вхождения. В строке поиска поддерживаются регулярные выражения.
Более детальный поиск может быть осуществлен с помощью команды Ctrl+Shift+J. Введите в дополнительные поля критерии поиска.
Возможности редактора
Подсказки IntelliSence
Где бы вы не находились в вашем коде, нажав на Ctrl+Space будет выведено окно подсказки IntelliSence. При наборе кода редактор будет показывать его автоматически.
Подсказки параметров
Для перегруженных функций вы можете листать варианты реализации используя клавиши Up и Down.
Сниппеты кода
VS Code поддерживает аббревиатуры Emmet. Вы можете использовать их при редактировании файлов HTML, Razor, CSS, Less, Sass, XML или Jade. Основной перечень аббревиатур можно посмотреть по адресу http://docs.emmet.io/cheat-sheet/.
Переход к определению символа
Нажав на F12 вы перейдете к определению символа. Если нажать Ctrl и провести курсором по символу вы увидите определение в дополнительном окне.
Переход к методу или переменной
Нажав на Ctrl+Shift+O вы откроете перечень методов в файле, в дополнение вы можете нажать двоеточие: и методы будут сгруппированы по типу. Нажав на Up и Down выберите нужный метод и курсор в редакторе перейдет на строку где находится выбранный метод.
Для языков C# и TypeScript вы можете использовать комбинацию Ctrl+T и набрать нужный метод или переменную, при этом будет осуществлен поиск по всем файлам в проекте.
Просмотр определения символа
Если вам необходимо быстро посмотреть на определение символа или на референсы, для того чтобы вспомнить детали реализации или использования, можно использовать поиск или переход к определению символов, что не всегда удобно так как переключает контекст.
В этом случае можно воспользоваться командами Reference Search (Shift+F12) или Peek Definition (Alt+F12) и результаты поиска будут отображаться в инлайн окошке:
Переименование методов и переменных
Нажав F2 вы можете изменить имя метода или переменной. Стандартная операция рефакторинга, но пока она поддерживается только для языков C# и TypeScript.
Отладка
В VS Code входит отладчик. Его возможности пока ограничены, и работают не на всех платформах. Тем не менее, вы можете использовать отладчик для языков JavaScript и TypeScript на всех платформах, а для C# и F# на платформах OS X и Linux.
Сохраните конфигурационный файл и выберите пункт Launch в меню, установите точку останова и нажмите F5 для старта отладки.
Отладчик позволяет просматривать значения текущих переменных:
Более подробно о возможностях отладчика можно почитать по адресу https://code.visualstudio.com/Docs/debugging в том числе о том как сконфигурировать Mono для отладки C# и F# кода на платформах OS X и Linux.
Контроль версий
VS Code интегрирован с системой контроля версий git, и поддерживает большинство команд. В версии 0.5 был зафиксирован ряд ошибок связанных с интеграцией. Поддерживаются локальные и удаленные репозитарии.
Совет: установите credential helper для того чтобы не получать постоянные запросы на ввод данных учетной записи https://help.github.com/articles/caching-your-github-password-in-git/
Конфликты
VS Code позволяет осуществлять слияния и разрешение конфликтов при работе с системой контроля версий:
Проверка кода по схемам зависимостей
Зачем использовать схемы зависимостей?
Чтобы убедиться в том, что код не конфликтует с его конструкцией, выполните проверку кода с помощью схем зависимостей в Visual Studio. Это может помочь:
Поиск конфликтов между зависимостями в коде и зависимостями на схеме зависимостей.
Найти зависимости, на которые могут повлиять предложенные изменения.
Например, можно изменить схему зависимостей, чтобы показать потенциальные изменения архитектуры, а затем проверить код, чтобы увидеть затронутые зависимости.
Выполнить рефакторинг или миграцию кода в другую структуру.
Найти код или зависимости, с которыми потребуется выполнить определенные действия даже после перемещения кода в другую архитектуру.
Требования
Решение, имеющее проект моделирования с диаграммой зависимостей. эта схема зависимостей должна быть связана с артефактами в проектах C# или Visual Basic, которые необходимо проверить. См. раздел Создание схем зависимостей из кода.
Чтобы узнать, какие выпуски Visual Studio поддерживают эту функцию, см. раздел Поддержка инструментов моделирования и архитектуры в различных выпусках.
код можно проверить вручную из открытой схемы зависимостей в Visual Studio или из командной строки. вы также можете проверить код автоматически при выполнении локальных сборок или сборок Azure Pipelines. См. видео Channel 9: проектирование и проверка архитектуры с помощью схем зависимостей.
если вы хотите выполнить проверку слоев с помощью Team Foundation Server (TFS), необходимо также установить на сервере сборки ту же версию Visual Studio.
Динамическая проверка зависимостей
Проверка зависимостей происходит в режиме реального времени, и ошибки отображаются сразу в Список ошибок.
Динамическая проверка поддерживается для C# и Visual Basic.
Чтобы включить полный анализ решения при использовании динамической проверки зависимостей, откройте параметры в строке Gold, которая отображается в Список ошибок.
При обновлении проектов для включения динамической проверки в диалоговом окне отображается ход выполнения преобразования.
при обновлении проекта для динамической проверки зависимостей версия пакета NuGet обновляется так же, как и для всех проектов, и является самой высокой используемой версией.
Добавление нового проекта проверки зависимостей активирует обновление проекта.
Определение, поддерживает ли элемент проверку
слои можно связывать с веб-сайтами, Office документами, обычными текстовыми файлами и файлами в проектах, которые являются общими для нескольких приложений, но в процессе проверки их не включаются. Ошибки проверки для ссылок на проекты или сборки, связанные с отдельными слоями, отображаются только в том случае, если между этими слоями отображаются зависимости. Эти ссылки считаются зависимостями, только если используются в коде.
На схеме зависимостей выберите один или несколько слоев, щелкните правой кнопкой мыши выделенный фрагмент и выберите пункт Просмотреть ссылки.
В диалоговом окне Добавление ссылки выберите сборки или проекты, а затем нажмите кнопку ОК.
Проверка кода вручную
Проверка кода на основе открытой схемы зависимостей
Щелкните правой кнопкой мыши поверхность схемы и выберите пункт Проверить архитектуру.
Окно Список ошибок сообщает о любых произошедших ошибках. Дополнительные сведения об ошибках проверки см. в разделе Устранение неполадок при проверке слоев.
Visual Studio может показывать карту кода вместо источника ошибки. Это происходит, когда либо код имеет зависимость от сборки, которая не указана схемой зависимостей, либо в коде отсутствует зависимость, указанная схемой зависимостей. Просмотрите карту кода или код, чтобы определить, должна ли существовать зависимость. Дополнительные сведения о картах кода см. в статье сопоставление зависимостей в решениях.
Сведения об управлении ошибками см. в разделе разрешение ошибок проверки слоев.
Проверка кода в командной строке
откройте командную строку Visual Studio.
Выберите один из следующих вариантов.
чтобы проверить код для конкретного проекта моделирования в решении, выполните MSBuild со следующим пользовательским свойством.
перейдите в папку, содержащую файл проекта моделирования (modelproj) и схему зависимостей, а затем запустите MSBuild со следующим пользовательским свойством:
чтобы проверить код для всех проектов моделирования в решении, запустите MSBuild со следующим пользовательским свойством:
перейдите к папке решения, которая должна содержать проект моделирования, содержащий схему зависимостей, а затем запустите MSBuild со следующим пользовательским свойством:
Отобразятся любые возникающие ошибки. дополнительные сведения о MSBuild см. в разделе задача MSBuild и MSBuild.
Дополнительные сведения об ошибках проверки см. в разделе Устранение неполадок при проверке слоев.
Управление ошибками проверки
В процессе разработки может понадобиться подавить некоторые конфликты, выявленные в ходе проверки. Например, можно подавлять ошибки, над которыми уже ведется работа, а также ошибки, не имеющие отношения к конкретному сценарию. При подавлении ошибки рекомендуется вести журнал рабочего элемента в Team Foundation.
Вы должны быть уже подключены к управлению исходным кодом (SCC) TFS для создания рабочего элемента или связи с ним. При попытке открыть соединение с другим SCC TFS Visual Studio автоматически закрывает текущее решение. Убедитесь, что вы уже подключены соответствующему SCC, перед попыткой создания рабочего элемента или связи с ним. В последних выпусках Visual Studio команды меню недоступны, если вы не подключены к SCC.
Создание рабочего элемента для ошибки проверки
Используйте эти задачи для управления ошибками проверки в окне Список ошибок :
Чтобы | Выполните эти действия | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Подавить выбранные ошибки во время проверки | Щелкните правой кнопкой мыши одну или несколько выбранных ошибок, наведите указатель на пункт Управление ошибками проверки, а затем выберите пункт подавлять ошибки. Отобразятся подавленные ошибки с форматированием в виде зачеркивания. При выполнении проверки в следующий раз эти ошибки отображаться не будут. Подавленные ошибки отправляются в файле. подавлений для соответствующего файла схемы зависимостей. | ||||||||||
Остановить подавление выбранных ошибок | Щелкните правой кнопкой мыши выбранную подавленную ошибку или ошибки, наведите указатель на пункт Управление ошибками проверки и выберите команду отменить подавление ошибок.Автоматическая проверка кодаПроверку слоев можно выполнять при каждом выполнении локальной сборки. если ваша команда использует Azure DevOps, можно выполнить проверку слоев с помощью условных возвратов, которые можно указать, создав пользовательскую задачу MSBuild, и использовать отчеты построения для получения ошибок проверки. Сведения о создании сборок с условным возвратом см. в разделе TFVC с проверкой изменений. Автоматическая проверка кода во время локальной сборкиОткройте файл проекта моделирования (.modelproj) в текстовом редакторе и включите следующее свойство. В Обозреватель решений щелкните правой кнопкой мыши проект моделирования, содержащий диаграмму зависимостей или диаграммы, и выберите пункт свойства. В окне Свойства задайте для свойства Проверить архитектуру проекта моделирования значение true. Это позволяет включить проект моделирования в процесс проверки. В Обозреватель решений щелкните файл схемы зависимостей (. LAYERDIAGRAM), который вы хотите использовать для проверки. В окне Свойства убедитесь, что для свойства действие построения схемы задано значение Проверка. Сюда входит схема зависимостей в процессе проверки. Сведения об управлении ошибками в окне список ошибок см. в разделе разрешение ошибок проверки слоев. Устранение неполадок проверки слоевСледующая таблица описывает проблемы проверки слоев и способы их устранения. Эти проблемы отличаются от ошибок, возникающих из-за несоответствия между кодом и структурой. Дополнительные сведения об этих ошибках см. в разделе Устранение неполадок при проверке слоев.
Разрешение ошибок проверки слоевПри проверке кода на соответствие схеме зависимостей ошибки проверки возникают, когда код конфликтует с конструкцией. Например, ошибки проверки могут происходить по следующим причинам: Артефакт назначен неправильному слою. В этом случае следует переместить артефакт. Способ использования артефактом (например, классом) другого класса конфликтует с имеющейся архитектурой. В этом случае необходимо выполнить рефакторинг кода, чтобы устранить зависимость. Для устранения этих ошибок следует обновлять код до тех пор, пока в процессе проверки не перестанут происходить ошибки. Эту процедуру можно выполнить методом итераций. В следующем разделе описывается синтаксис, используемый в этих ошибках, объясняется значение этих ошибок и предлагаются пути решения или управления ими.
|