{"id":226471,"date":"2019-09-23T09:00:37","date_gmt":"2019-09-23T16:00:37","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=226471"},"modified":"2020-04-24T11:30:56","modified_gmt":"2020-04-24T18:30:56","slug":"dot-net-core-support-in-visual-studio-2019-version-16-3","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/dot-net-core-support-in-visual-studio-2019-version-16-3\/","title":{"rendered":".NET Core Support and More in Visual Studio 2019 version 16.3 &#8211; Update Now!"},"content":{"rendered":"<p>As we continue to deliver on our mission of\u00a0<em>any developer, any app, any platform<\/em>, it&#8217;s always an exciting time on the Visual Studio team when we get to launch major features.\u00a0 Today we&#8217;ve released Visual Studio 2019 version 16.3 which contains support for the release of .NET Core 3.0, significant C++ improvements, and great updates for Python developers as well as TypeScript 3.6 support. You can download version 16.3 on <a href=\"https:\/\/visualstudio.microsoft.com\/downloads\">visualstudio.com<\/a> or update from the Visual Studio installer.<\/p>\n<p>We are also releasing the first preview of Visual Studio 2019 version 16.4 which can be <a href=\"http:\/\/visualstudio.microsoft.com\/preview\">downloaded from visualstudio.com<\/a>. For additional information on what&#8217;s in Preview 1, check out the <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/releases\/2019\/release-notes?view=vs-2019\">release notes<\/a>.<\/p>\n<p>So, grab your favorite fall beverage, click the update button in the Visual Studio Installer or <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/install\/update-visual-studio?view=vs-2019\">download the latest version<\/a>, and while the update commences, peruse this overview of what&#8217;s new and awesome in this release.<\/p>\n<h3>.NET Core 3.0<\/h3>\n<p>Visual Studio version 16.3 includes support for .NET Core 3.0.\u00a0 Why is .NET Core 3.0 exciting?\u00a0 Here&#8217;s what Scott Hanselman has to say:<\/p>\n<blockquote><p>&#8220;.NET Core is open source and cross-platform.\u00a0 You can use .NET Core to run server applications on Windows, Mac, a dozen Linuxes, iPhone, IoT devices, and more! .NET Core is open source, cross-platform, and fast as heck. And it&#8217;s out today. Fully supported. Open source, yes, but fully supported with the full weight of Microsoft.<\/p>\n<p>Together with .NET Core 3.0, C# 8.0 is out today!\u00a0 It&#8217;s also open source and is the language that many of you will use to make your applications.\u00a0 Visual Studio 16.3 supports both C# 8.0 and .NET Core 3.0, and provides tooling support for all new .NET Core 3.0 features.\u00a0 This includes support for building desktop applications with Windows Forms and WPF, client-side web applications with Blazor and back-end microservices using gRPC.<\/p>\n<p>While .NET Core 3.0 is cross-platform, you can also create platform-specific applications!\u00a0 This means your apps can &#8220;light up&#8221; with operating system-specific features.\u00a0 For example, if you want to talk to a light sensor on a Raspberry Pi with .NET Core, you can!<\/p>\n<p>Taking this to obvious next steps, you take (if you want) a 15-year-old existing Windows Forms or WPF app and swap out it&#8217;s &#8220;engine&#8221; for all new .NET Core 3.0 and reap the benefits. It&#8217;s a brain transplant that can make your application faster, easier to deploy, and easier to maintain but it will still be a Windows app using your existing code.<\/p>\n<p>You might think because .NET Core 3.0 includes support for Windows Forms and WPF that it might be heavier or take up more space.\u00a0 In fact, this support exists in optional NuGet packages.\u00a0 Your .NET Core apps are smaller than ever (and will get even tighter in future releases) and run amazingly well in containers\/Docker and in the cloud where density is needed.&#8221;<\/p><\/blockquote>\n<p>There are so many exciting features in .NET Core 3.0. Head over to the <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/\">.NET Blog<\/a> to read all of the details.<\/p>\n<p><strong>NOTE if you are working with .NET Core 3.0, you will need to use Visual Studio version 16.3 or greater.<\/strong><\/p>\n<h5>.NET Core Desktop Application Support<\/h5>\n<p><span style=\"color: #333333; font-family: 'Segoe UI',sans-serif; font-size: 12pt;\">.NET Core 3.0 includes full support for Windows Forms and WPF applications.\u00a0<\/span><\/p>\n<p><span style=\"color: #333333; font-family: 'Segoe UI',sans-serif; font-size: 12pt;\">In Visual Studio 2019 version 16.3, you have the familiar tooling you expect for building and publishing WPF applications, including the WPF XAML designer, tools for creating MSIX packages for WPF applications and more.\u00a0<\/span><\/p>\n<p><span style=\"color: #333333; font-family: 'Segoe UI',sans-serif; font-size: 12pt;\">Also, we are happy to announce that the first preview version of the Windows Forms\u00a0<em><span style=\"font-family: 'Segoe UI',sans-serif;\">Designer<\/span><\/em>\u00a0for .NET Core projects is available today!\u00a0We are in the very early days of the designer, so it\u2019s available as a Visual Studio extension (\u201cVSIX\u201d). Once you install the .NET Core Designer, Visual Studio will automatically pick the correct designer based on the target framework of your application. This preview of the designer supports a subset of controls, but more will be added every month in further preview versions. That\u2019s why we don\u2019t recommend porting your Windows Forms applications to .NET Core yet if you need to use the designer on a regular basis.<\/span><\/p>\n<p>In addition to supporting WPF and Windows Forms with .NET Core, we recently introduced support for WPF and Windows Forms in Visual Studio App Center as a public preview.\u00a0 <a href=\"https:\/\/devblogs.microsoft.com\/appcenter\/announcing-wpf-and-winforms-support-in-visual-studio-app-center\/\">This blog post<\/a> will give more details.<\/p>\n<p><span style=\"color: #333333; font-family: 'Segoe UI',sans-serif; font-size: 12pt;\">Please reach out with your suggestions, issues, and feature requests. We appreciate your engagement!<\/span><\/p>\n<p><a href=\"https:\/\/aka.ms\/winforms-designer\"><span class=\"FieldRange BCX1 SCXW96508167\"><span class=\"TextRun Underlined BCX1 SCXW96508167\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun CommentStart BCX1 SCXW96508167\">Download .NET Core Win<\/span><\/span><span class=\"TextRun Underlined BCX1 SCXW96508167\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX1 SCXW96508167\">dows <\/span><\/span><span class=\"TextRun Underlined BCX1 SCXW96508167\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun BCX1 SCXW96508167\">Forms Designer Preview 1<\/span><\/span><\/span><span class=\"TextRun BCX1 SCXW96508167\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart BCX1 SCXW96508167\">\u00a0<\/span><\/span><\/a><\/p>\n<h5>.NET Applications in Containers<\/h5>\n<p>Developers building Azure Functions (v2) can now add Docker container support (Linux only) to their C# projects. This can be done by right-clicking the project name in Solution Explorer and selecting <strong>Add<\/strong> &gt; <strong>Docker Support<\/strong>. In addition to adding a Dockerfile to your project, the debug target will be set to &#8220;Docker&#8221; which means when you debug your Function app it will happen inside the running container.<\/p>\n<p><figure id=\"attachment_226513\" aria-labelledby=\"figcaption_attachment_226513\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226513 size-large\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/AA-trick-1024x534.png\" alt=\".NET Applications in Containers\" width=\"640\" height=\"334\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/AA-trick-1024x534.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/AA-trick-300x156.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/AA-trick-768x400.png 768w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption id=\"figcaption_attachment_226513\" class=\"wp-caption-text\">.NET Applications in Containers<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Also, be sure to check out the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-azuretools.vs-containers-tools-extensions\">Visual Studio Container Tools Extensions (Preview)<\/a> for a glimpse of even better tooling coming in Visual Studio 2019 version 16.4 Preview 2.<\/p>\n<h5>.NET Productivity<\/h5>\n<p>Since C# 8.0 and .NET Core 3.0 are out today, Visual Studio tooling is updated to make you more productive when using these new tools.\u00a0 Here&#8217;s a taste of the dozens of refactorings and happiness features we&#8217;ve added.<\/p>\n<p>You can wrap chains of fluent calls with a refactoring.\u00a0 To try this out, place your cursor on a call chain and press <strong>Ctrl + .<\/strong> to open the <strong>Quick Actions and Refactorings<\/strong> menu.<\/p>\n<p><figure id=\"attachment_226485\" aria-labelledby=\"figcaption_attachment_226485\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226485\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog3.png\" alt=\"Wrap Chains of Fluent Calls\" width=\"500\" height=\"171\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog3.png 851w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog3-300x103.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog3-768x263.png 768w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><figcaption id=\"figcaption_attachment_226485\" class=\"wp-caption-text\">Wrap Chains of Fluent Calls with Quick Actions and Refactoring<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Now you are also able to rename a file when renaming an interface, enum or class.\u00a0 To do so, just place the cursor in the class name and type <strong>Ctrl + R, R<\/strong> to open the Rename dialogue and check the <strong>Rename file<\/strong> box.<\/p>\n<p><figure id=\"attachment_226484\" aria-labelledby=\"figcaption_attachment_226484\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226484\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog2.png\" alt=\"Easily rename a file when renaming interface, enum or class\" width=\"498\" height=\"155\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog2.png 730w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog2-300x93.png 300w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><figcaption id=\"figcaption_attachment_226484\" class=\"wp-caption-text\">You can easily rename a file when renaming an interface, enum, or class.<\/figcaption><\/figure><\/p>\n<h5><\/h5>\n<h5>.NET in version 16.4 Preview 1<\/h5>\n<p>If you are a developer wanting to try the cutting-edge tools in .NET, check out the features in Visual Studio 2019 version 16.4 Preview 1.\u00a0 It includes new .NET Core 3.0 app publishing options:\u00a0 Ready to Run (Crossgen), Linking, and SingleExe (<a href=\"https:\/\/www.hanselman.com\/blog\/MakingATinyNETCore30EntirelySelfcontainedSingleExecutable.aspx\">make tiny .NET Core 3.0 apps<\/a>) as well as new templates. Again, the <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/releases\/2019\/release-notes-preview\">release notes<\/a> contain a larger list of features.<\/p>\n<h4>C++<\/h4>\n<p>Visual Studio 2019 version 16.3 brings new productivity features to all C++ developers and enhancements to the C++ cross-platform development experience.<\/p>\n<p>Beyond those two aspects (which we\u2019ll dive into next), those of you following our C++ Standard conformance efforts will be glad to hear that in the C++ Standard Library (STL), several new preview features are available under the \/std:c++latest switch, including <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c20-concepts-are-here-in-visual-studio-2019-version-16-3\/\">C++ Concepts<\/a>! Concepts are predicates that can be used to express a generic algorithm\u2019s expectations on its template arguments.<\/p>\n<h5>C++ Productivity<\/h5>\n<p>There are several improvements for C++ developers to be excited about. For example, you can toggle line comments using the keyboard shortcut <strong>Ctrl + K, Ctrl + \/<\/strong> to easily set aside code you don&#8217;t want to compile just yet.<\/p>\n<p><figure id=\"attachment_226486\" aria-labelledby=\"figcaption_attachment_226486\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-226486\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog4.gif\" alt=\"Set Aside Code to Compile for Later\" width=\"359\" height=\"134\" \/><figcaption id=\"figcaption_attachment_226486\" class=\"wp-caption-text\">Set Aside Code to Compile for Later<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>The IntelliSense completion list is now more powerful than ever with a <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/smarter-member-list-filtering-for-c\/\">built-in filter that considers type qualifiers<\/a>. For example, if you type after const std::vector, the list will now filter out functions that would illegally modify it, such as push_back.<\/p>\n<p><figure id=\"attachment_226520\" aria-labelledby=\"figcaption_attachment_226520\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226520 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/923blog12.gif\" alt=\"Intellisense Improvement\" width=\"456\" height=\"265\" \/><figcaption id=\"figcaption_attachment_226520\" class=\"wp-caption-text\">Intellisense Build-in Filter that Considers Type Qualifiers<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Next, a <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/productivity-improvements-for-c-new-default-colorization-template-argument-filtering-in-call-stack-window-and-intellicode-on-by-default\/\">new default semantic colorization scheme<\/a> allows you to better understand your code at a glance. You will notice new colors in the following areas: functions, local variables, escape characters, keyword \u2013 control (if\/else\/for\/return), string escape characters, and macros. There is also an option to differentiate between global and member functions and variables. The screenshots below illustrate new colorization for the blue and dark themes of Visual Studio:<\/p>\n<p><figure id=\"attachment_226487\" aria-labelledby=\"figcaption_attachment_226487\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226487\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog5.png\" alt=\"\" width=\"500\" height=\"312\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog5.png 1428w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog5-300x187.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog5-768x479.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog5-1024x638.png 1024w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><figcaption id=\"figcaption_attachment_226487\" class=\"wp-caption-text\">The Colorization for the blue and dark themes of Visual Studio<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Lastly, we <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/productivity-improvements-for-c-new-default-colorization-template-argument-filtering-in-call-stack-window-and-intellicode-on-by-default\/\">turned IntelliCode on by default<\/a> for C++ developers for AI-powered IntelliSense, added a way to <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/productivity-improvements-for-c-new-default-colorization-template-argument-filtering-in-call-stack-window-and-intellicode-on-by-default\/\">configure the Call Stack window to hide or show template arguments<\/a> for improved readability, and added some <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/new-c-core-check-rules\/\">new CppCoreCheck rules<\/a> to Visual Studio Code Analysis, including a new \u2018Enum Rules\u2019 rule set and additional const, enum, and type rules.<\/p>\n<h5>C++ Cross-Platform<\/h5>\n<p>Switching gears from productivity to cross-platform development, we made several user experience improvements. First of all, for CMake projects, you can now <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c-cross-platform-development-with-visual-studio-2019-version-16-3-vcpkg-cmake-configuration-remote-headers-and-wsl\/\">install missing 3<sup>rd<\/sup> party libraries<\/a> that your application depends on straight from the IDE, using Vcpkg, our cross-platform C++ library manager. You will need to have Vcpkg installed on your machine, have run \u2018vcpkg integrate install\u2019 to set it up, and have a vcpkg toolchain file in your CMake project to take advantage of this feature. When you activate this feature, Vcpkg will download your library from source, compile it for you, and make it available for use for your future builds. This quick action will also install the package\u2019s upstream dependencies for you.<\/p>\n<p><figure id=\"attachment_226488\" aria-labelledby=\"figcaption_attachment_226488\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-226488\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog6.png\" alt=\"\" width=\"467\" height=\"128\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog6.png 467w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog6-300x82.png 300w\" sizes=\"(max-width: 467px) 100vw, 467px\" \/><figcaption id=\"figcaption_attachment_226488\" class=\"wp-caption-text\">Install Missing 3rd Party Libraries<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Next, the <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c-cross-platform-development-with-visual-studio-2019-version-16-3-vcpkg-cmake-configuration-remote-headers-and-wsl\/\">CMake Settings Editor has been updated<\/a> with better settings descriptions and links to documentation so it is easier than ever to configure your project. Below is a screenshot of the new experience:<\/p>\n<p><figure id=\"attachment_226489\" aria-labelledby=\"figcaption_attachment_226489\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226489\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog7.png\" alt=\"CMake Editor Updates\" width=\"700\" height=\"419\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog7.png 1004w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog7-300x180.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog7-768x460.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"figcaption_attachment_226489\" class=\"wp-caption-text\">CMake Settings Editor has been Updated<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>There were a few more improvements to the cross-platform development experience. This includes environment variable support for configuring debug targets and custom tasks in launch.vs.json and tasks.vs.json. In addition, remote header copies for Linux projects <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c-cross-platform-development-with-visual-studio-2019-version-16-3-vcpkg-cmake-configuration-remote-headers-and-wsl\/\">now run in parallel<\/a> for improved performance. Visual Studio\u2019s native support for WSL also supports <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/c-cross-platform-development-with-visual-studio-2019-version-16-3-vcpkg-cmake-configuration-remote-headers-and-wsl\/\">parallel builds for MSBuild-based Linux projects<\/a>. Lastly, you can now specify a list of local build outputs to deploy to a remote system with Linux Makefile projects.<\/p>\n<h4>Python<\/h4>\n<p>With this release you will enjoy a revamped testing experience for your Python projects. Not only there is now support for the popular <strong>pytest framework<\/strong>, but the support for the <strong>unittest framework<\/strong> has been improved to provide you with a more seamless testing experience. Let\u2019s walk through some of those improvements from configuring &amp; executing tests, to debugging, and finally code coverage.<\/p>\n<h5>Configuring and Executing Tests<\/h5>\n<p>Let\u2019s look at how you do this for Python projects, and then for the <a href=\"https:\/\/devblogs.microsoft.com\/python\/python-in-visual-studio-2019-preview-2\/\">Open Folder scenario<\/a>.<\/p>\n<p>To enable the testing experience within Visual Studio for <b>Python projects<\/b>, right-click on the project name and select the \u2018Properties\u2019 option. This option opens the project designer, which allows you to configure tests by going to the \u2018Test\u2019 tab. From the \u2018Test\u2019 tab, simply click the \u2019Test Framework\u2019 dropdown box to select the testing framework you wish to use, as you can see in this screenshot:<\/p>\n<p><figure id=\"attachment_226490\" aria-labelledby=\"figcaption_attachment_226490\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226490\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog8.png\" alt=\"Test Framework Dropdown Box\" width=\"500\" height=\"336\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog8.png 631w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog8-300x202.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><figcaption id=\"figcaption_attachment_226490\" class=\"wp-caption-text\">Test Framework dropdown box for configuring testing.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Pressing CTRL+S initiates test discovery for the testing framework you have selected, whether that is pytest, or unittest.<\/p>\n<p>For <strong>Open Folder<\/strong> scenarios, the testing experience relies on the PythonSettings.json file for configuration. This file is located within your \u2018local settings\u2019 folder as shown here:<\/p>\n<p><figure id=\"attachment_226491\" aria-labelledby=\"figcaption_attachment_226491\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-226491\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog9.png\" alt=\"Configuring the .json file\" width=\"605\" height=\"122\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog9.png 605w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog9-300x60.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><figcaption id=\"figcaption_attachment_226491\" class=\"wp-caption-text\">Configure the PythonSettings.json file for Open Folder scenarios.<\/figcaption><\/figure><\/p>\n<h5><\/h5>\n<h5>Code Coverage for Tests<\/h5>\n<p>Below you can see how Code Coverage is supported for unittest and pytest in both project mode and open folder scenarios:<\/p>\n<p><figure id=\"attachment_226492\" aria-labelledby=\"figcaption_attachment_226492\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-226492\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog10.png\" alt=\"Code Coverage is supported for unittest and pytest\" width=\"600\" height=\"383\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog10.png 1100w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog10-300x192.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog10-768x491.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/09\/0923blog10-1024x654.png 1024w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><figcaption id=\"figcaption_attachment_226492\" class=\"wp-caption-text\">Code Coverage supported for unittest and pytest in both project mode and open folder scenarios.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>To enable Code Coverage for your currently opened project\/folder, you must install the Python package, <i>coverage<\/i>, into your active virtual environment. Then, you can analyze Code Coverage by going to the Test Explorer and selecting <b>Analyze Code Coverage for All Tests<\/b>.<\/p>\n<p><a href=\"https:\/\/aka.ms\/VSTestExplorerPython\">Read our Python documentation for further details on making the most of the new testing experience<\/a>.<\/p>\n<h4>Version 16.4:\u00a0 Our Next Servicing Baseline<\/h4>\n<p>When version 16.4 moves to the release channel later this year, it will be the second \u201c<a href=\"https:\/\/docs.microsoft.com\/visualstudio\/releases\/2019\/servicing\">servicing baseline<\/a>\u201d for Visual Studio 2019. We introduced servicing baselines with Visual Studio 2019 to provide large organizations increased flexibility over when they adopt the new features in minor version updates included in the Enterprise and Professional editions. Unlike versions 16.1, 16.2, and 16.3, which received servicing fixes only until the next minor update is releases, we offer fixes for servicing baselines for an extended period. We will service version 16.4 for 12 months after the <i>next<\/i> servicing baseline is declared.<\/p>\n<p>As version 16.0 is the first servicing baseline, it will continue to receive servicing fixes for one year after version 16.4 releases later this year. Full details can be found at <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/releases\/2019\/servicing\">Visual Studio Product Lifecycle and Servicing<\/a>.<\/p>\n<h4>Update now and let us know what you think<\/h4>\n<p>If the above summary got you as excited as we are, head on over to <a href=\"https:\/\/visualstudio.microsoft.com\/downloads\">visualstudio.microsoft.com\/downloads<\/a> to get the latest releases. As always, you can continue to use the\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio?view=vs-2019\" target=\"_blank\" rel=\"noopener noreferrer\">Report a Problem<\/a>\u00a0tool in Visual Studio or head over to the\u00a0<a href=\"https:\/\/developercommunity.visualstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Visual Studio Developer Community<\/a>\u00a0to track issues or suggest a feature. We continue to make many tweaks and improvements along the way to address your feedback, and rest assured that we will continue doing so in releases going forward.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As we continue to deliver on our mission of\u00a0any developer, any app, any platform, it&#8217;s always an exciting time on the Visual Studio team when we get to launch major features.\u00a0 Today we&#8217;ve released Visual Studio 2019 version 16.3 which contains support for the release of .NET Core 3.0, significant C++ improvements, and great updates [&hellip;]<\/p>\n","protected":false},"author":4513,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[354],"class_list":["post-226471","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-announcement"],"acf":[],"blog_post_summary":"<p>As we continue to deliver on our mission of\u00a0any developer, any app, any platform, it&#8217;s always an exciting time on the Visual Studio team when we get to launch major features.\u00a0 Today we&#8217;ve released Visual Studio 2019 version 16.3 which contains support for the release of .NET Core 3.0, significant C++ improvements, and great updates [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/226471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/4513"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=226471"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/226471\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=226471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=226471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=226471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}